Example.agda 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. module Example where
  2. open import Bool
  3. open import Nat hiding (_==_; _+_)
  4. open import AC
  5. open Provable
  6. infix 40 _+_
  7. infix 30 _==_
  8. postulate
  9. X : Set
  10. _==_ : X -> X -> Set
  11. |0| : X
  12. _+_ : X -> X -> X
  13. refl : forall {x} -> x == x
  14. sym : forall {x y} -> x == y -> y == x
  15. trans : forall {x y z} -> x == y -> y == z -> x == z
  16. idL : forall {x} -> |0| + x == x
  17. idR : forall {x} -> x + |0| == x
  18. comm : forall {x y} -> x + y == y + x
  19. assoc : forall {x y z} -> x + (y + z) == (x + y) + z
  20. congL : forall {x y z} -> y == z -> x + y == x + z
  21. congR : forall {x y z} -> x == y -> x + z == y + z
  22. open Semantics
  23. _==_ _+_ |0| refl sym trans idL idR
  24. comm assoc congL congR
  25. thm = theorem 11 \a b c d e f g h i j k ->
  26. j ○ (k ○ (((((h ○ (e ○ ((e ○ (a ○ (a ○ (b ○ ((c ○ (((c ○ (d ○ d)) ○ (((d
  27. ○ (d ○ ((d ○ ((e ○ k) ○ ((((a ○ b) ○ (((h ○ (k ○ f)) ○ (((d ○ ((j ○ (h ○
  28. (a ○ (((g ○ (k ○ g)) ○ ((b ○ (i ○ (i ○ ((i ○ ((k ○ (d ○ (b ○ ((b ○ ((h ○
  29. k) ○ e)) ○ a)))) ○ j)) ○ a)))) ○ i)) ○ h)))) ○ (g ○ h))) ○ f) ○ h)) ○ b))
  30. ○ f) ○ f))) ○ (e ○ d)))) ○ d) ○ c)) ○ c)) ○ b))))) ○ (((a ○ a) ○ k) ○
  31. e)))) ○ c) ○ h) ○ (d ○ a)) ○ (c ○ a)))
  32. (j ○ (k ○ (((h ○ (h ○ e)) ○ ((((e ○ (((a ○ (b ○ ((b ○ c) ○ (((d ○ d) ○
  33. ((d ○ d) ○ ((((e ○ (e ○ (f ○ f))) ○ (((a ○ ((b ○ (h ○ (k ○ (h ○ ((f ○ ((h
  34. ○ ((h ○ (a ○ ((k ○ (g ○ (b ○ (k ○ ((((a ○ (((e ○ h) ○ k) ○ b)) ○ b) ○ d)
  35. ○ j))))) ○ ((((a ○ i) ○ i) ○ i) ○ i)))) ○ ((g ○ h) ○ g))) ○ (j ○ d))) ○
  36. f))))) ○ b)) ○ k) ○ d)) ○ d) ○ d))) ○ ((c ○ c) ○ c))))) ○ (a ○ a)) ○ a))
  37. ○ (k ○ e)) ○ c) ○ d)) ○ a))) ○ (c ○ a)
  38. test = prove thm