2014-01-20 07:26:34 +00:00
|
|
|
|
Set: pp::colors
|
|
|
|
|
Set: pp::unicode
|
|
|
|
|
Defined: double
|
|
|
|
|
⊤
|
|
|
|
|
⊤
|
|
|
|
|
9
|
|
|
|
|
⊥
|
|
|
|
|
2 + 2 + (2 + 2) + 1 ≥ 3
|
2014-01-20 23:38:00 +00:00
|
|
|
|
3 ≤ 2 * 2 + (2 * 2 + (2 * 2 + (2 * 2 + 1)))
|
2014-01-20 07:26:34 +00:00
|
|
|
|
Assumed: a
|
|
|
|
|
Assumed: b
|
|
|
|
|
Assumed: c
|
|
|
|
|
Assumed: d
|
|
|
|
|
Imported 'if_then_else'
|
2014-01-20 23:38:00 +00:00
|
|
|
|
a * c + (a * d + (b * c + b * d))
|
2014-01-20 07:26:34 +00:00
|
|
|
|
trans (Nat::distributel a b (c + d))
|
|
|
|
|
(trans (congr (congr2 Nat::add (Nat::distributer a c d)) (Nat::distributer b c d))
|
2014-01-20 23:38:00 +00:00
|
|
|
|
(Nat::add_assoc (a * c) (a * d) (b * c + b * d)))
|
2014-01-20 07:26:34 +00:00
|
|
|
|
Proved: congr2_congr1
|
|
|
|
|
Proved: congr2_congr2
|
|
|
|
|
Proved: congr1_congr2
|
|
|
|
|
⊤
|
|
|
|
|
trans (congr (congr2 eq
|
|
|
|
|
(congr1 10
|
|
|
|
|
(congr2 Nat::add (trans (congr2 (ite (a > 0) b) (Nat::add_zeror b)) (if_a_a (a > 0) b)))))
|
|
|
|
|
(congr1 10 (congr2 Nat::add (if_a_a (a > 0) b))))
|
|
|
|
|
(eq_id (b + 10))
|
2014-01-23 05:44:24 +00:00
|
|
|
|
trans (congr (congr2 (λ x : ℕ, eq ((λ x : ℕ, x + 10) x))
|
|
|
|
|
(trans (congr2 (ite (a > 0) b) (Nat::add_zeror b)) (if_a_a (a > 0) b)))
|
|
|
|
|
(congr2 (λ x : ℕ, x + 10) (if_a_a (a > 0) b)))
|
|
|
|
|
(eq_id (b + 10))
|
2014-01-20 23:38:00 +00:00
|
|
|
|
a * a + (a * b + (b * a + b * b))
|
2014-01-20 07:26:34 +00:00
|
|
|
|
⊤ → ⊥ refl (⊤ → ⊥)
|
|
|
|
|
⊤ → ⊤ refl (⊤ → ⊤)
|
|
|
|
|
⊥ → ⊥ refl (⊥ → ⊥)
|
|
|
|
|
⊥ refl ⊥
|