{-# OPTIONS --type-in-type #-} open import NeilPrelude module Equational where infixr 1 _≡⟨_⟩_ infix 2 _QED _≡⟨_⟩_ : {A : Set} → {b c : A} → (a : A) → a ≡ b → b ≡ c → a ≡ c _ ≡⟨ refl ⟩ refl = refl _QED : {A : Set} → (a : A) → a ≡ a _ QED = refl open import NatProps open import Nat exampleLem1 : (n : ℕ) → (n + O) + n ≡ (n + n) + O exampleLem1 n = n + O + n ≡⟨ comm {n + O}⟩ n + (n + O) ≡⟨ assocR {n} ⟩ (n + n) + O QED