mirror of
https://github.com/tomasriveral/ZeroToLean.git
synced 2026-08-11 18:28:39 +02:00
update progress 02.08.2026
This commit is contained in:
@@ -4,16 +4,27 @@
|
|||||||
|---------------|--------------------|-------------|
|
|---------------|--------------------|-------------|
|
||||||
|`basicLogic.and_commutative` | `and_comm` | $$a\land b \iff b \land a$$ |
|
|`basicLogic.and_commutative` | `and_comm` | $$a\land b \iff b \land a$$ |
|
||||||
|`basicLogic.or_commutative` | `or_comm` | $$a\lor b \iff b \lor a$$ |
|
|`basicLogic.or_commutative` | `or_comm` | $$a\lor b \iff b \lor a$$ |
|
||||||
|`basicLogic.double_negation` | `not_not_intro`| $$a\to\neg\neg a$$ |
|
|`basicLogic.double_negation` | `not_not_intro` | $$a\to\neg\neg a$$ |
|
||||||
|`basicLogic.and_associative` | `and_assoc`| $$a\land (b\land c) \iff (a\land b) \land c$$|
|
|`basicLogic.and_associative` | `and_assoc` | $$a\land (b\land c) \iff (a\land b) \land c$$ |
|
||||||
|`basicLogic.contrapositive` | `contrapose` | $$(a \to b) \to (\neg b \to \neg a)$$|
|
|`basicLogic.contrapositive` | `contrapose` | $$(a \to b) \to (\neg b \to \neg a)$$ |
|
||||||
|`basicLogic.p_or_p_equal_p` | `or_self` | $$(a \or a) = a$$|
|
|`basicLogic.p_or_p_equal_p` | `or_self` | $$(a \lor a) = a$$ |
|
||||||
|`basicLogic.p_or_p_iff_p` | | $$a \or a \iff a$$|
|
|`basicLogic.p_or_p_iff_p` | | $$a \lor a \iff a$$ |
|
||||||
|`basicLogic.and_or_distributivity_left` | `and_or_left` | $$a \and (b \or c) \iff a \and b \or a \and c$$|
|
|`basicLogic.and_or_distributivity_left` | `and_or_left` | $$a \land (b \lor c) \iff (a \land b) \lor (a \land c)$$ |
|
||||||
|`basicLogic.and_or_distributivity_right` | `and_or_right` | $$a \and b \or c \iff (a \or c) \and (b \or c)$$ |
|
|`basicLogic.and_or_distributivity_right` | `and_or_right` | $$(a \land b) \lor c \iff (a \lor c) \land (b \lor c)$$ |
|
||||||
|`basicLogic.p_and_true_equal_p` | `and_true` | $$(a \and True) = a$$|
|
|`basicLogic.p_and_true_equal_p` | `and_true` | $$(a \land True) = a$$ |
|
||||||
|`basicLogic.p_and_true_iff_p` | | $$a \and True \iff a$$|
|
|`basicLogic.p_and_true_iff_p` | | $$a \land True \iff a$$ |
|
||||||
|`basicLogic.true_and_p_equal_p` | `true_and` | $$(True \and a) = a$$|
|
|`basicLogic.true_and_p_equal_p` | `true_and` | $$(True \land a) = a$$ |
|
||||||
|`basicLogic.true_and_p_iff_p` | | $$True \and a \iff a$$|
|
|`basicLogic.true_and_p_iff_p` | | $$True \land a \iff a$$ |
|
||||||
|`basicLogic.p_or_false_equal_p` | `or_false` | $$(a \or False) = a$$|
|
|`basicLogic.p_or_false_equal_p` | `or_false` | $$(a \lor False) = a$$ |
|
||||||
|`basicLogic.p_or_false_iff_p` | | $$a \or False \iff a$$|
|
|`basicLogic.p_or_false_iff_p` | | $$a \lor False \iff a$$ |
|
||||||
|
|`basicLogic.false_or_p_equal_p` | `false_or` | $$(False \lor a) = a$$ |
|
||||||
|
|`basicLogic.false_or_p_iff_p` | | $$False \lor a \iff a$$ |
|
||||||
|
|`basicLogic.and_false_equal_false` | `and_false` | $$(a \land False) = False$$ |
|
||||||
|
|`basicLogic.and_false_iff_false` | | $$a \land False \iff False$$ |
|
||||||
|
|`basicLogic.false_and_equal_false` | `false_and` | $$(False \land a) = False$$ |
|
||||||
|
|`basicLogic.false_and_iff_false` | | $$False \land a \iff False$$ |
|
||||||
|
|`basicLogic.or_true_equal_true` | `or_true` | $$(a \lor True) = True$$ |
|
||||||
|
|`basicLogic.or_true_iff_true` | | $$a \lor True \iff True$$ |
|
||||||
|
|`basicLogic.true_or_equal_true` | `true_or` | $$(True \lor a) = True$$ |
|
||||||
|
|`basicLogic.true_or_iff_true` | | $$True \lor a \iff True$$ |
|
||||||
|
|
||||||
|
|||||||
@@ -195,10 +195,81 @@ theorem p_or_false_equal_p
|
|||||||
exact propext p_or_false_iff_p
|
exact propext p_or_false_iff_p
|
||||||
|
|
||||||
#check false_or
|
#check false_or
|
||||||
|
theorem false_or_p_iff_p
|
||||||
|
: False ∨ P ↔ P := by
|
||||||
|
constructor
|
||||||
|
· intro false_or_p
|
||||||
|
cases false_or_p with
|
||||||
|
| inl f =>
|
||||||
|
exact False.elim f
|
||||||
|
| inr p =>
|
||||||
|
exact p
|
||||||
|
· intro p
|
||||||
|
exact Or.inr p
|
||||||
|
theorem false_or_p_equal_p
|
||||||
|
: (False ∨ P) = P := by
|
||||||
|
exact propext false_or_p_iff_p
|
||||||
|
|
||||||
#check and_false
|
#check and_false
|
||||||
|
theorem and_false_iff_false
|
||||||
|
: P ∧ False ↔ False := by
|
||||||
|
constructor
|
||||||
|
· intro p_and_false
|
||||||
|
cases p_and_false with
|
||||||
|
| intro p f =>
|
||||||
|
exact f
|
||||||
|
· intro f
|
||||||
|
exact False.elim f
|
||||||
|
theorem and_false_equal_false
|
||||||
|
: (P ∧ False) = False := by
|
||||||
|
exact propext and_false_iff_false
|
||||||
|
|
||||||
#check false_and
|
#check false_and
|
||||||
|
theorem false_and_iff_false
|
||||||
|
: False ∧ P ↔ False := by
|
||||||
|
constructor
|
||||||
|
· intro false_and_p
|
||||||
|
cases false_and_p with
|
||||||
|
| intro f p =>
|
||||||
|
exact f
|
||||||
|
· intro f
|
||||||
|
exact False.elim f
|
||||||
|
theorem false_and_equal_false
|
||||||
|
: (False ∧ P) = False := by
|
||||||
|
exact propext false_and_iff_false
|
||||||
|
|
||||||
#check or_true
|
#check or_true
|
||||||
|
theorem or_true_iff_true
|
||||||
|
: P ∨ True ↔ True := by
|
||||||
|
constructor
|
||||||
|
· intro p_or_true
|
||||||
|
cases p_or_true with
|
||||||
|
| inr t =>
|
||||||
|
exact t
|
||||||
|
| inl p =>
|
||||||
|
trivial
|
||||||
|
· intro t
|
||||||
|
exact Or.inr t
|
||||||
|
theorem or_true_equal_true
|
||||||
|
: (P ∨ True) = True := by
|
||||||
|
exact propext or_true_iff_true
|
||||||
|
|
||||||
#check true_or
|
#check true_or
|
||||||
|
theorem true_or_iff_true
|
||||||
|
: True ∨ P ↔ True := by
|
||||||
|
constructor
|
||||||
|
· intro true_or_p
|
||||||
|
cases true_or_p with
|
||||||
|
| inl t =>
|
||||||
|
exact t
|
||||||
|
| inr p =>
|
||||||
|
trivial
|
||||||
|
· intro t
|
||||||
|
exact Or.inl t
|
||||||
|
theorem true_or_equal_true
|
||||||
|
: (True ∨ P) = True := by
|
||||||
|
exact propext true_or_iff_true
|
||||||
|
|
||||||
#check not_or
|
#check not_or
|
||||||
#check not_and_or
|
#check not_and_or
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user