12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- module Example where
- open import Bool
- open import Nat hiding (_==_; _+_)
- open import AC
- open Provable
- infix 40 _+_
- infix 30 _==_
- postulate
- X : Set
- _==_ : X -> X -> Set
- |0| : X
- _+_ : X -> X -> X
- refl : forall {x} -> x == x
- sym : forall {x y} -> x == y -> y == x
- trans : forall {x y z} -> x == y -> y == z -> x == z
- idL : forall {x} -> |0| + x == x
- idR : forall {x} -> x + |0| == x
- comm : forall {x y} -> x + y == y + x
- assoc : forall {x y z} -> x + (y + z) == (x + y) + z
- congL : forall {x y z} -> y == z -> x + y == x + z
- congR : forall {x y z} -> x == y -> x + z == y + z
- open Semantics
- _==_ _+_ |0| refl sym trans idL idR
- comm assoc congL congR
- thm = theorem 11 \a b c d e f g h i j k ->
- j ○ (k ○ (((((h ○ (e ○ ((e ○ (a ○ (a ○ (b ○ ((c ○ (((c ○ (d ○ d)) ○ (((d
- ○ (d ○ ((d ○ ((e ○ k) ○ ((((a ○ b) ○ (((h ○ (k ○ f)) ○ (((d ○ ((j ○ (h ○
- (a ○ (((g ○ (k ○ g)) ○ ((b ○ (i ○ (i ○ ((i ○ ((k ○ (d ○ (b ○ ((b ○ ((h ○
- k) ○ e)) ○ a)))) ○ j)) ○ a)))) ○ i)) ○ h)))) ○ (g ○ h))) ○ f) ○ h)) ○ b))
- ○ f) ○ f))) ○ (e ○ d)))) ○ d) ○ c)) ○ c)) ○ b))))) ○ (((a ○ a) ○ k) ○
- e)))) ○ c) ○ h) ○ (d ○ a)) ○ (c ○ a)))
- ≡
- (j ○ (k ○ (((h ○ (h ○ e)) ○ ((((e ○ (((a ○ (b ○ ((b ○ c) ○ (((d ○ d) ○
- ((d ○ d) ○ ((((e ○ (e ○ (f ○ f))) ○ (((a ○ ((b ○ (h ○ (k ○ (h ○ ((f ○ ((h
- ○ ((h ○ (a ○ ((k ○ (g ○ (b ○ (k ○ ((((a ○ (((e ○ h) ○ k) ○ b)) ○ b) ○ d)
- ○ j))))) ○ ((((a ○ i) ○ i) ○ i) ○ i)))) ○ ((g ○ h) ○ g))) ○ (j ○ d))) ○
- f))))) ○ b)) ○ k) ○ d)) ○ d) ○ d))) ○ ((c ○ c) ○ c))))) ○ (a ○ a)) ○ a))
- ○ (k ○ e)) ○ c) ○ d)) ○ a))) ○ (c ○ a)
- test = prove thm
|