01:43
∀ S,T ∈ set ( S ≠ T ⇔ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) [Lemma] Given S,T ∈ set: If S ≠ T: If ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ): ∀ S,T ∈ set ( S = T ⇔ ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) S = T ⊥ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) If ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ): If S = T: ∀ S,T ∈ set ( S = T ⇔ ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ⊥ S ≠ T S ≠ T ⇔ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ∀ S,T ∈ set ( S ≠ T ⇔ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) )
Prove ∀ S ∈ set ( S ≠ ∅ ⇔ ∃ x ∈ obj ( x ∈ S ) ) [Lemma] Given S ∈ set: ∀ S,T ∈ set ( S ≠ T ⇔ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) [Lemma] Given S,T ∈ set: If S ≠ T: If ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ): ∀ S,T ∈ set ( S = T ⇔ ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) S = T ⊥ ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) If ¬∀x ∈ obj ( x ∈ S ⇔ x ∈ T ): If S = T: ∀ S,T ∈ set ( S = T ⇔ ∀x ∈ obj ( x ∈ S ⇔ x ∈ T ) ) ∀x ∈ obj ( x ∈ S ⇔ x ∈ T )
1 hour later…
03:03
@F.Zer The lemma is correct, but is the kind of thing I would not make a lemma out of, because it's logically trivial. When you're doing ordinary mathematics, you can freely skip FOL subproofs that just use an easy FOL equivalence such as ( A ⇔ B ) ⇒ ( ¬A ⇔ ¬B ).
And this also shows up in the fact that your proof including that of the lemma is a bit bloated compared to what you actually need:
Given S∈set: If S ≠ ∅: If ¬∃x∈obj ( x∈S ): Given y∈obj: If y∈S: ∃x∈obj ( x∈S ). ⊥. y∈∅. If y∈∅: ⊥. [empty-set] y∈S. y∈S ⇔ y∈∅. S=∅. ⊥. ∃x∈obj ( x∈S ). If ∃x∈obj ( x∈S ): Let c∈obj such that c∈S. If S = ∅: c∈∅. ⊥. [empty-set] S ≠ ∅. ∀S∈set ( S ≠ ∅ ⇔ ∃x∈obj ( x∈S ) ).
4 hours later…
07:31
@Prithubiswas Well, it happens to be justified by the restrictions on bound variables. Although I skimmed over it under "Syntax Rules", since that post was for the deductive system rather than teaching the syntax of FOL statements, I did say:
> A statement must be an atomic (indivisible) proposition or a compound statement formed in the usual way using boolean operations or quantifiers, with the restriction that every variable that is bound by a quantifier is not already used to refer to some object in the current context, and that there are no nested quantifiers that bind the same variable.
Nevertheless, you are correct that in general we can't know that, so you can view the exercise as working under that assumption.
2 hours later…
09:33
@Prithubiswas Do you mean like P(t) ≡ t=x? Then ∀x∈S ( P(x) ) ≡ ∀x∈S ( x=x ) but we cannot rename to ∀y∈S ( P(y) ) ≡ ∀y∈S ( y=x ).
09:58
@user21820 So you mean every variable in a property P must be bound by a quantifier.And if ¬∀x∈S(P(x)) and there is an occurrence of x in P , then that means there is also a ∀x in P , and hence there is an ∀x in P(x). So Now we have two ∀x in ¬∀x∈S(P(x)) and the ¬∀x∈S(P(x)) becomes syntactically invalid because "there are no nested quantifiers that bind the same variable".Right?
10:13
If we treat P as a predicate-symbol, then it is even valid to write "∀x∈ℕ ∃y∈ℕ ( x<y ∧ P(y) )" even though the definition of P uses the variable x.
What does this mean? The ability to define a new predicate-symbol is redundant, but let me simply state what such a rule would say in this specific example: At any point in a proof you can write "∀k∈ℕ ( P(k) ⇔ k>1 ∧ ¬∃d,x∈ℕ ( 1<d<k ∧ d·x = k ) )" where P is a fresh predicate-symbol.
Then there is no trouble at all with something like "∀x∈ℕ ∃y∈ℕ ( x<y ∧ P(y) )". You can easily prove that it is equivalent to "∀x∈ℕ ∃y∈ℕ ( x<y ∧ k>1 ∧ ¬∃d,t∈ℕ ( 1<d<k ∧ d·t = k ) )". Note that I had to rename the inner "x" otherwise it would be syntactically invalid.
3 hours later…
2 hours later…
14:56
@F.Zer There is actually a way to get fixed-font without the button, if you are using a programming text editor. Just put 4 spaces before every line. That is in fact what the fixed-font button does.
15:42
@user21820 I feel like I am failing to understand the Predicate Calculus part of your Natural Deductive (fitch style) system. The fact that I am having so many confusion and so many questions is indicating to me that I might be not in the "right level" to learn your system.
I have checked the LPL textbook to learn basic FOL. It might be wrong , but I feel like it is a bit too wordy for me. It has a lot of exercises which requires the program mes provided with the paid version of the book. So I might miss out on a lot of things I could have learned.
I have checked the LPL textbook to learn basic FOL. It might be wrong , but I feel like it is a bit too wordy for me. It has a lot of exercises which requires the program mes provided with the paid version of the book. So I might miss out on a lot of things I could have learned.
@Prithubiswas I don't think there is one. I searched very hard and besides my system and LPL's I didn't find any usable system via the internet. But I don't get why you think you "might not be at the right level". You will never escape the technical details of the quantifier issues, no matter which system. Different systems just hide the complexity in different places. Mine is already the cleanest possible, so I think you should just work through the exercises I gave you.
That's the whole point of the exercises; to make sure you actually know the deductive rules once you are done working through them.
And mathematical background is not needed to learn the system. F.Zer is an example, who has completely finished all the FOL exercises. For you, once you finish the FOL exercises you will have a very big advantage because of your mathematical background, because there are no more rules to learn after that!
@user21820 I kind of prefer to first learn the rules precisely and then proceed with the exercises instead of learning the rules by trial and error. Will it be ok if I first question about every single rule (the syntax , the inference rules etc) of your system in a numerical list and after I feel like I know the system precisely then I will proceed with the exercises?
(2) I thin in the syntax section of your post , you didn't specify about (something like) what is a variable , constant letters , function letters , how to form terms from them , predicate letters , terms+ predicate letters=atomic sentences , bolean connectives , universal and existensial quantifiers and other logical symbols that are in your system , definitions of free and bound variables etc. But why? (Because I wish to learn the syntax rules specifically to your system)
16:28
@Prithubiswas Sure. I will specify it here. My post was already so long that I just wanted to make the deductive system clear, and it worked well enough for most students who didn't want to go into every detail.
We start with some inbuilt predicate/function-symbols (function-symbols including constant-symbols), that are distinct from allowed variable names. We won't bother to explicitly restrict which ASCII characters can be used for which, so just make sure you don't use the same character for different things.
In any context, there are some used variables (as defined in the post). A term is recursively defined as either a used variable or a string with the usual function-application syntax denoting a function-symbol applied to the correct number of terms. For example, if f is a 2-input function-symbol, and t,u are terms, then f(t,u) is also a term.
16:47
@user21820 How they are not saying the same thing?Isn't String concatination is just a precise way of telling 'if f is a 2-input function-symbol, and t,u are terms, then f(t,u) is also a term' into 'If f is a 2-input function-symbol, and t,u are terms, then f+"("+t+","+u+")" is also a term'.One is for human intuition and another one is suitable for computers?
Yes, and it's even worse than that, because when we actually study logic we will use expressions with brackets that we need to distinguish from the bracket-symbols used in the logic itself!
Yup. So we have covered the basic definition of terms. Now to define what (boolean) statements are valid in a given context.
> A : bool ⊢ ¬A : bool
> A,B : bool ⊢ A∧B : bool
> A,B : bool ⊢ A∨B : bool
> A,B : bool ⊢ A⇒B : bool
> A,B : bool ⊢ A⇔B : bool
> A,B : bool ⊢ A∧B : bool
> A,B : bool ⊢ A∨B : bool
> A,B : bool ⊢ A⇒B : bool
> A,B : bool ⊢ A⇔B : bool
> [v is a used variable] ⊢ v : term
> t[1],...,t[k] : term ; [f is a k-input function-symbol] ⊢ f(t[1],...,t[k]) : term
> t[1],...,t[k] : term ; [Q is a k-input predicate-symbol] ⊢ Q(t[1],...,t[k]) : bool
> t[1],...,t[k] : term ; [f is a k-input function-symbol] ⊢ f(t[1],...,t[k]) : term
> t[1],...,t[k] : term ; [Q is a k-input predicate-symbol] ⊢ Q(t[1],...,t[k]) : bool
Here a rule of the form "... ⊢ ..." means from the left-hand stuff you can deduce the right-hand stuff (in the current context), and if you have "( ... ⊢ ... )" in the left-hand stuff it means that you have deduced that kind of subcontext previously. For example we can literally do the following deduction if Q is a 1-input predicate symbol:
All these deductions should never be written out explicitly, but it should be how you think of the syntax rules if you want to be precise. Note that the ∀sub rule ensures you cannot have nested quantification of the same variable. For example you cannot do:
I've also included the recursive definition of terms in the above rules, just to let you see how one can think of them. For instance, if we have the binary operation + we can actually do the following deduction:
18:43
@user21820 Oh, I would like to ask you: do you think trying to use "pedestrian intuition" is not always useful while doing mathematical proofs ? I mean, sometimes I should use something that works (using what I have) although that may seem counterintuitive. I mean, people who don't have mathematical training, often seem to find some mathematical deductions or tricks unintuitive. Or, perhaps we are trained in an un-logical way :-)
@F.Zer Proofs in ZFC are just proofs in ZFC, and may not have any meaning whatsoever, much less match intuition. However, proofs in more ordinary mathematics do have more meaning and are more amenable to intuition, especially mathematics that can be handled by a weak extension of PA that only deals with naturals and sets of naturals.
18:57
Prove ∀S∈set ( S≠∅ ⇒ ∃I∈set ∀x∈obj ( x∈I ⇔ ∀T∈S ( x∈T ) ) ) Given S ∈ set: If S ≠ ∅: ∀ S ∈ set ( S ≠ ∅ ⇔ ∃ x ∈ obj ( x ∈ S ) ) [Lemma] ∃ x ∈ obj ( x ∈ S ) Let A ∈ obj such that A ∈ S Let I' = { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } Given x ∈ obj: If x ∈ I': x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) [type-notation] ∀ T ∈ S ( x ∈ T ) If ∀ T ∈ S ( x ∈ T ): x ∈ A x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) x ∈ I' [type-notation] ∀x∈obj ( x∈I' ⇔ ∀T∈S ( x∈T ) )
19:14
@F.Zer You didn't say I'∈set. Also, note that although I said you can use "Let v = E." where E is an object expression and v is a fresh variable, that only applies to objects. Types are not necessarily objects. I'll of course let you do so for types as well, but don't forget that the "=" there is not equality.
{ x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } ∈ set. [comprehension] { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } ∈ obj. Let I' = { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) }. [for convenience]
Prove ∀S∈set ( S≠∅ ⇒ ∃I∈set ∀x∈obj ( x∈I ⇔ ∀T∈S ( x∈T ) ) ) [Lemma] Given S ∈ set: If S ≠ ∅: ∀ S ∈ set ( S ≠ ∅ ⇔ ∃ x ∈ obj ( x ∈ S ) ) [Lemma] ∃ x ∈ obj ( x ∈ S ) Let A ∈ obj such that A ∈ S A ∈ S { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } ∈ set [comprehension] ∀x∈set ( x∈obj ) [Lemma] { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } ∈ obj Let I' = { x : x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) } Given x ∈ obj: If x ∈ I': x ∈ A ∧ ∀ T ∈ S ( x ∈ T ) [type-notation]
19:42
May 26 at 19:07, by user21820
> we can extend the base formal system to include the rule that in any context you can write "[Let ]v = E." whenever E is an object expression and v is a fresh variable.
28 mins ago, by user21820
@F.Zer You didn't say I'∈set. Also, note that although I said you can use "Let v = E." where E is an object expression and v is a fresh variable, that only applies to objects. Types are not necessarily objects. I'll of course let you do so for types as well, but don't forget that the "=" there is not equality.
20:12
@user21820, I leave here the proof of the theorem using the correct version of intersection. Do you think it is headed in the right direction ?
Theorem. Suppose F and G are families of sets, and F ⋂ G ≠ ∅. Then ⋂F ⊆ ⋃G. Given F,G ∈ set: If F ⋂ G ≠ ∅: ∀ S ∈ set ( S ≠ ∅ ⇔ ∃ x ∈ obj ( x ∈ S ) ) [Lemma] ∃ x ∈ obj ( x ∈ F ⋂ G ) Let a ∈ obj such that a ∈ F ⋂ G a ∈ F ∃ x ∈ obj ( x ∈ F ) F ≠ ∅ ∀S∈set ( S≠∅ ⇒ ∃I∈set ∀x∈obj ( x∈I ⇔ ∀T∈S ( x∈T ) ) ) [Lemma] Given a ∈ ⋂(F): ... ∀ S ∈ set ( ⋃(S) = { x : ∃T ∈ set ( T ∈ S ∧ x ∈ T ) } ) [union] ⋃(G) = { x : ∃ T ∈ set ( T ∈ G ∧ x ∈ T ) }
Theorem. Suppose F and G are families of sets, and F ⋂ G ≠ ∅. Then Intersect(F) ⊆ Union(G). Given F,G ∈ set: If F ⋂ G ≠ ∅: ∀ S ∈ set ( S ≠ ∅ ⇔ ∃ x ∈ obj ( x ∈ S ) ) [Lemma] ∃ x ∈ obj ( x ∈ F ⋂ G ) Let a ∈ obj such that a ∈ F ⋂ G a ∈ F ∃ x ∈ obj ( x ∈ F ) F ≠ ∅ ∀ S ∈ set ( S≠∅ ⇒ Intersect(S) = { x : ∀T∈S ( x∈T ) } ) [intersection] Intersect(F) = { x : ∀T∈F ( x∈T ) } Given a ∈ Intersect(F): ∀T∈F ( x∈T ) ... ∀ S ∈ set ( Union(S) = { x : ∃T ∈ set ( T ∈ S ∧ x ∈ T ) } ) [union]
« first day (1173 days earlier) ← previous day next day → last day (1310 days later) »
Transcript for
Jul23
Jul '2124
Jul25
♦
Basic Mathematics
This room is meant for all basic mathematical discussion, incl...