import MyNat.Definition
import MyNat.Addition -- add_succ
import MyNat.Multiplication -- mul_succ
import AdvancedAdditionWorld.Level9 -- succ_ne_zero
import Mathlib.Tactic.LeftRight
namespace MyNat
open MyNat
Advanced Multiplication World
Level 2: eq_zero_or_eq_zero_of_mul_eq_zero
A variant on the previous level.
Theorem
If ab = 0
, then at least one of a
or b
is equal to zero.
theoremeq_zero_or_eq_zero_of_mul_eq_zero (eq_zero_or_eq_zero_of_mul_eq_zero: ∀ (a b : MyNat), a * b = 0 → a = 0 ∨ b = 0aa: MyNatb :b: MyNatMyNat) (MyNat: Typeh :h: a * b = 0a *a: MyNatb =b: MyNat0) :0: MyNata =a: MyNat0 ∨0: MyNatb =b: MyNat0 :=0: MyNata, b: MyNat
h: a * b = 0a = 0 ∨ b = 0a, b: MyNat
h: a * b = 0a = 0 ∨ b = 0b: MyNat
h: zero * b = 0
zerozero = 0 ∨ b = 0b: MyNat
h: zero * b = 0
zero.hzero = 0Goals accomplished! 🐙b, a': MyNat
h: succ a' * b = 0
succsucc a' = 0 ∨ b = 0b, a': MyNat
h: succ a' * b = 0
succsucc a' = 0 ∨ b = 0a': MyNat
h: succ a' * zero = 0
succ.zerosucc a' = 0 ∨ zero = 0a': MyNat
h: succ a' * zero = 0
succ.zero.hzero = 0Goals accomplished! 🐙a', b': MyNat
h: succ a' * succ b' = 0
succ.succsucc a' = 0 ∨ succ b' = 0a', b': MyNat
h: succ a' * succ b' = 0
succ.succ.hFalsea', b': MyNat
h: succ a' * succ b' = 0
succ.succ.hFalsea', b': MyNat
h: succ a' * b' + succ a' = 0
succ.succ.hFalsea', b': MyNat
h: succ a' * b' + succ a' = 0
succ.succ.hFalsea', b': MyNat
h: succ a' * b' + succ a' = 0
succ.succ.hFalsea', b': MyNat
h: succ a' * b' + succ a' = 0
succ.succ.hFalsea', b': MyNat
h: succ (succ a' * b' + a') = 0
succ.succ.hFalsea', b': MyNat
h: succ (succ a' * b' + a') = 0
succ.succ.hFalsea', b': MyNat
h: succ (succ a' * b' + a') = 0
succ.succ.hFalseGoals accomplished! 🐙
Next up Level 3