{-# 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