lean2/tests/lean/tst6.lean.expected.out
Leonardo de Moura 51640ecff8 Move files in examples directory to tests directory. They are not real examples
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2013-08-31 19:16:30 -07:00

4 KiB
Raw Blame History

Assumed: N
Assumed: h
Proved: CongrH
Set option: lean::pp::implicit
Theorem CongrH {a1 a2 b1 b2 : N} (H1 : a1 = b1) (H2 : a2 = b2) : (h a1 a2) = (h b1 b2) :=
Congr::explicit
N
(λ x : N, N)
(h a1)
(h b1)
a2
b2
(Congr::explicit N (λ x : N, N N) h h a1 b1 (Refl::explicit (N N N) h) H1)
H2
Theorem CongrH::explicit (a1 a2 b1 b2 : N) (H1 : a1 = b1) (H2 : a2 = b2) : (h a1 a2) = (h b1 b2) :=
CongrH::explicit a1 a2 b1 b2 H1 H2
Set option: lean::pp::implicit
Theorem CongrH {a1 a2 b1 b2 : N} (H1 : a1 = b1) (H2 : a2 = b2) : (h a1 a2) = (h b1 b2) := Congr (Congr (Refl h) H1) H2
Theorem CongrH::explicit (a1 a2 b1 b2 : N) (H1 : a1 = b1) (H2 : a2 = b2) : (h a1 a2) = (h b1 b2) := CongrH H1 H2
Proved: Example1
Set option: lean::pp::implicit
Theorem Example1 (a b c d : N) (H : a = b ∧ b = c a = d ∧ d = c) : (h a b) = (h c b) :=
DisjCases::explicit
(a = b ∧ b = c)
(a = d ∧ d = c)
((h a b) = (h c b))
H
(λ H1 : a = b ∧ b = c,
CongrH::explicit
a
b
c
b
(Trans::explicit
N
a
b
c
(Conjunct1::explicit (a = b) (b = c) H1)
(Conjunct2::explicit (a = b) (b = c) H1))
(Refl::explicit N b))
(λ H1 : a = d ∧ d = c,
CongrH::explicit
a
b
c
b
(Trans::explicit
N
a
d
c
(Conjunct1::explicit (a = d) (d = c) H1)
(Conjunct2::explicit (a = d) (d = c) H1))
(Refl::explicit N b))
Proved: Example2
Set option: lean::pp::implicit
Theorem Example2 (a b c d : N) (H : a = b ∧ b = c a = d ∧ d = c) : (h a b) = (h c b) :=
DisjCases::explicit
(a = b ∧ b = c)
(a = d ∧ d = c)
((h a b) = (h c b))
H
(λ H1 : a = b ∧ b = c,
CongrH::explicit
a
b
c
b
(Trans::explicit
N
a
b
c
(Conjunct1::explicit (a = b) (b = c) H1)
(Conjunct2::explicit (a = b) (b = c) H1))
(Refl::explicit N b))
(λ H1 : a = d ∧ d = c,
CongrH::explicit
a
b
c
b
(Trans::explicit
N
a
d
c
(Conjunct1::explicit (a = d) (d = c) H1)
(Conjunct2::explicit (a = d) (d = c) H1))
(Refl::explicit N b))
Proved: Example3
Set option: lean::pp::implicit
Theorem Example3 (a b c d e : N) (H : a = b ∧ b = e ∧ b = c a = d ∧ d = c) : (h a b) = (h c b) :=
DisjCases
H
(λ H1 : a = b ∧ b = e ∧ b = c, CongrH (Trans (Conjunct1 H1) (Conjunct2 (Conjunct2 H1))) (Refl b))
(λ H1 : a = d ∧ d = c, CongrH (Trans (Conjunct1 H1) (Conjunct2 H1)) (Refl b))
Proved: Example4
Set option: lean::pp::implicit
Theorem Example4 (a b c d e : N) (H : a = b ∧ b = e ∧ b = c a = d ∧ d = c) : (h a c) = (h c a) :=
DisjCases
H
(λ H1 : a = b ∧ b = e ∧ b = c,
let AeqC := Trans (Conjunct1 H1) (Conjunct2 (Conjunct2 H1)) in CongrH AeqC (Symm AeqC))
(λ H1 : a = d ∧ d = c, let AeqC := Trans (Conjunct1 H1) (Conjunct2 H1) in CongrH AeqC (Symm AeqC))