30 lines
1 KiB
Text
30 lines
1 KiB
Text
constant f (a b : nat) : a > b → nat
|
||
constant g : nat → nat
|
||
open tactic
|
||
|
||
example (a₁ a₂ b₁ b₂ c d : nat)
|
||
(H₁ : a₁ > b₁)
|
||
(H₂ : a₂ > b₂) :
|
||
a₁ = c → a₂ = c →
|
||
b₁ = d → d = b₂ →
|
||
g (g (f a₁ b₁ H₁)) = g (g (f a₂ b₂ H₂)) :=
|
||
by cc
|
||
|
||
example (a₁ a₂ b₁ b₂ c d : nat) :
|
||
a₁ = c → a₂ = c →
|
||
b₁ = d → d = b₂ →
|
||
a₁ + b₁ + a₁ = a₂ + b₂ + c :=
|
||
by cc
|
||
|
||
example (a b c : Prop) : (a ↔ b) → ((a ∧ (c ∨ b)) ↔ (b ∧ (c ∨ a))) :=
|
||
by cc
|
||
|
||
example (a b c d : Prop)
|
||
[d₁ : decidable a] [d₂ : decidable b] [d₃ : decidable c] [d₄ : decidable d]
|
||
: (a ↔ b) → (c ↔ d) → ((if (a ∧ c) then true else false) ↔ (if (b ∧ d) then true else false)) :=
|
||
by cc
|
||
|
||
example (a b c d : Prop) (x y z : nat)
|
||
[d₁ : decidable a] [d₂ : decidable b] [d₃ : decidable c] [d₄ : decidable d]
|
||
: (a ↔ b) → (c ↔ d) → x = y → ((if (a ∧ c ∧ a) then x else y) = (if (b ∧ d ∧ b) then y else x)) :=
|
||
by cc
|