.bindTerm : (a : PresetoidAlgebra sig) -> Term sig x -> (x -> U a) -> U adata Step : (pres : Presentation) -> (a : PresetoidAlgebra (pres .signature)) -> Rel (U a)display : Show (a .relation x y) => Show (pres .Axiom) => Step pres a x y -> Doc ()displayNamed : Bool -> Printer pres () -> Step pres (QuotientData pres (cast (Fin n))) x y -> Doc ()plug : (a : Algebra sig) -> Term sig (Maybe (U a)) -> U a -> U a(:.:) : Term sig (Maybe a) -> Term sig (Maybe a) -> Term sig (Maybe a)plugFusion : (ctx2 : Term sig (Maybe (U a))) -> (ctx1 : Term sig (Maybe (U a))) -> (t : U a) -> plug a ctx2 (plug a ctx1 t) = plug a (ctx2 :.: ctx1) tdata Locate : (sig : Signature) -> (a : Algebra sig) -> Rel (U a) -> Rel (U a)Here : r x y -> Locate sig a r x yWe prove the equality by invoking a rule at the
toplevel
Cong : (t : Term sig (Maybe (U a))) -> r lhs rhs -> Locate sig a r (plug a t lhs) (plug a t rhs)We focus on a subterm `lhs` that may appear in
multiple locations and rewrite it to `rhs` using a
specific rule.
0 Closure : (pres : Presentation) -> (a : PresetoidAlgebra (pres .signature)) -> Rel (U a)0 Derivation : (p : Presentation) -> (a : PresetoidAlgebra (p .signature)) -> Rel (U a)0 Proof : (pres : Presentation) -> Term (pres .signature) (Fin n) -> Term (pres .signature) (Fin n) -> Typejoin : Locate sig alg (Locate sig alg r) ~> Locate sig alg rlocate : Locate (pres .signature) (a .algebra) (Derivation pres a) ~> Derivation pres alinearise : Maybe (DecEq (U a)) -> ((a |-)) ~> Derivation pres arecord Focus : (sig : Signature) -> Algebra sig -> Type.context : Focus sig a -> Term sig (Maybe (U a))context : Focus sig a -> Term sig (Maybe (U a)).content : Focus sig a -> U acontent : Focus sig a -> U adisplay : Printer sig (U a) -> Focus sig a -> Doc ()unicode : Printerlatex : PrinterlatexPreamble : StringcompactLatex : PrintercompactLatexPreamble : Stringdisplay : Printer -> Printer pres (U a) -> Show (a .relation x y) => Derivation pres a x y -> Doc ()displayPerhapsWithMagic : Printer -> Printer pres (U a) -> Show (a .relation x y) => Maybe (DecEq (U a)) -> Maybe (Ord (U a)) -> (|-) a x y -> Doc ()display : Printer -> Printer pres (U a) -> Show (a .relation x y) => DecEq (U a) => Ord (U a) => (|-) a x y -> Doc ()displayWithoutDecEq : Printer -> Printer pres (U a) -> Show (a .relation x y) => (|-) a x y -> Doc ()