All the "laws of logic" must be given in advance, and all at once, not, as in Frege and Russell, as a hierarchical axiomatic system. For instance, "p and q" means the same thing as "not (not p or not q,)" and "fa" means the same thing as "there exists an x such that fx and x is a" (5.47). If these propositions are equivalent, the meaning of one must be contained in the meaning of the other. That is, the meaning of "not" and "or" must be contained in "p and q" and the meaning of "there exists," "such that," and the sign for identity must be contained in "fa." In effect, all the "logical constants" must be given all at once if they are to be given at all.
All propositions share in common a general propositional form, which Wittgenstein calls "the essence of a proposition" (5.471). This general form should function as "the sole logical constant," rendering all other constants superfluous.
Wittgenstein says that "logic must look after itself" (5.473): we don't need external "laws" or "rules" to tell us how logic works. Logic is the realm of everything that is possible and conceivable. Whatever is ruled out by logic is ruled out because it is impossible and inconceivable: we do not need laws to tell us what falls outside the bounds of logic. Any proposition that lacks sense does so because we have not given a meaning to the signs in the proposition. For instance, "Socrates is identical" says nothing because we have not given meaning to the word "identical" when used as an adjective (5.4733).
Wittgenstein observes that all propositions can be derived by means of successive applications of the operation (——T)(ξ, .), that is by means of negating all the terms in the right hand pair of brackets. For instance, "p" would become "~p," "p" and "q" would be combined to form "~p.~q," and so on. Wittgenstein abbreviates this terminology to N(‾ξ), where the "N" stands for negation and the "‾ξ" stands collectively for all the propositions in the right hand pair of brackets (5.502).
It is now clear that, for instance, the various permutations of ~p are are not different propositions (5.512). They are all different ways of expressing the same proposition, which suggests that the signs for "not" and "and" are not the signs for objects.
Wittgenstein attempts to rid logical notation of the signs for generality and identity. Whenever a variable is given, that variable expresses all objects that can take that variable place, so generality is already given when a variable is given (5.524). We don't need an additional sign to denote generality. As for identity, "to say of two things that they are identical is nonsense, and to say of one thing that it is identical with itself is to say nothing at all" (5.5303). We do not need an "=" sign to say two signs are identical: we need only use the same sign twice. Often, the inclination to use the "=" sign comes from a temptation to say something general about the nature of propositions themselves (5.5351).
When Wittgenstein claims that all propositions can be derived by successive applications of a negating operation, he is alluding to the "Sheffer stroke," a logical constant discovered in the early 20th century. While Frege develops a system that relies only on the logical constants "not" and "if then," and Russell develops a system that relies only on the logical constants "not" and "or," it was discovered that the Sheffer stroke—usually symbolized as a vertical bar, "|"—was a logical constant that could stand on its own. The proposition "p|q" is equivalent to "~p.~q." Thus, "~p" can be expressed "p|p," "p v q" can be expressed "(p|q)|(p|q)," and so on.
Wittgenstein draws on the Sheffer stroke to show that a single operation can be used to derive any proposition from any other proposition. As we shall see, he will use this as the basis for the general form of the proposition. Every proposition has this in common, that it can be expressed in terms of the Sheffer stroke. Thus, any further logical objects are superfluous.
When Wittgenstein says "logic must look after itself" (5.473), he is alluding to a further difference between his conception of logic and the universalist conception espoused by Frege and Russell. According to the universalist conception, certain logical axioms must be laid out as fundamental "laws" of logic. These axioms determine what is logical and what isn't. While "p.q" does not violate any laws of logic and is hence perfectly rational, "p.~p" (e.g. "It is raining and it is not raining") does violate the laws of logic and so is an irrational contradiction.
Wittgenstein takes Frege's and Russell's own assertion that logic must be supremely general a step farther. According to Wittgenstein, a contradiction is not a violation of the laws of logic; rather, it is the outer limit of what can be expressed, just as tautology is the inner limit. "It is raining and it is not raining" may be contradictory, but it makes sense, which is more than can be said for "Purple is three years old." The difference between these two propositions is that "It is raining and it is not raining" can be expressed as a proposition, i.e. "p.~p," whereas there is no proposition that can express "Purple is three years old." Thus, according to Wittgenstein, we don't need laws to tell us what is logical and what isn't. Everything that can be said is logical, and whatever isn't logical cannot be said.
The discussion of generality that we find at 5.52–5.5262 is complicated and controversial. Essentially, Wittgenstein is trying to break down the distinction between truth-functional logic and quantifier logic. Truth functional logic deals with single propositions joined to form more complex propositions, and quantifier logic deals with generalizations made about entire classes of propositions.
As long as we do not specify what the "x" in the function "fx" refers to, it can represent any value for the function. Negating this proposition ("N(fx)"), then, is equivalent to saying that fx is false for all values of x. Negating this proposition again ("N(N(fx))") says that there is at least one value of x that makes "fx" true, which is equivalent to the existential generalization. To derive the universal generalization, we need to start with the proposition "f(N(x))," which says that there is a value of x that makes "fx" false. Negate this ("N(f(N(x)))"), and we have the universal generalization: "fx" is true for all values of x. Thus, Wittgenstein hopes to account for generality in the same terms as he accounts for truth-functional logic.
This account is problematic, however, as Wittgenstein seems to be contradicting himself. Using "fx" as an expression for any value of f seems to imply that "fx" is intended as a kind of logical sum: "fa or fb or fc or ." But at 5.521, Wittgenstein explicitly criticizes Frege and Russell for introducing generality in terms of logical sums and products. We can resolve this contradiction by reading Wittgenstein as criticizing these philosophers for defining generality in terms of logical sums and products, rather than seeing that logical sums and products exist inherently in the form of generality. In fact, Wittgenstein's logical atomism demands that he see generality in terms of logical sums and products, since he sees all propositions as being built up of combinations of elementary propositions. In his later philosophy, he criticizes this earlier view of generality, but only after having also abandoned the assumptions of logical atomism.