Skip to content

Commit

Permalink
Erase additional PreorderReasoning arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
madman-bob authored and gallais committed Aug 4, 2023
1 parent dc43ce2 commit 3c61471
Showing 1 changed file with 9 additions and 14 deletions.
23 changes: 9 additions & 14 deletions libs/base/Syntax/PreorderReasoning.idr
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,12 @@ data FastDerivation : (x : a) -> (y : b) -> Type where
(~~) : FastDerivation x y -> (step : Step y z) -> FastDerivation x z

public export
Calc : {0 x : a} -> {0 y : b} -> FastDerivation x y -> x ~=~ y
Calc (|~ x) = Refl
Calc ((~~) der (_ ...(Refl))) = Calc der
Calc : {0 x : a} -> {0 y : b} -> (0 der : FastDerivation x y) -> x ~=~ y
Calc der = irrelevantEq $ Calc' der
where
Calc' : {0 x : c} -> {0 y : d} -> FastDerivation x y -> x ~=~ y
Calc' (|~ x) = Refl
Calc' ((~~) der (_ ...(Refl))) = Calc' der

{- -- requires import Data.Nat
0
Expand All @@ -36,24 +39,16 @@ example x =
~~ 1+x ...( plusCommutative x 1 )
-}

-- Re-implement `prelude.Builtins.sym` to enable bootstrapping
-- Remove after next release
%inline
public export
symHet : (0 rule : x ~=~ y) -> y ~=~ x
symHet Refl = Refl

-- Smart constructors
public export
(..<) : (0 y : a) -> {0 x : b} ->
y ~=~ x -> Step x y
(y ..<(prf)) {x} = (y ...(symHet prf)) -- Use `sym` from next release
(..<) : (0 y : a) -> {0 x : b} -> (0 step : y ~=~ x) -> Step x y
(y ..<(prf)) {x} = (y ...(sym prf))

public export
(..>) : (0 y : a) -> (0 step : x ~=~ y) -> Step x y
(..>) = (...)

||| Use a judgemental equality but is not trivial to the reader.
public export
(~=) : FastDerivation x y -> (0 z : dom) -> {auto xEqy : y = z} -> FastDerivation x z
(~=) : FastDerivation x y -> (0 z : dom) -> {auto 0 xEqy : y = z} -> FastDerivation x z
(~=) der y {xEqy = Refl} = der ~~ y ... Refl

0 comments on commit 3c61471

Please sign in to comment.