Idris2Doc : Frex

Frex

Frex is an extensible library of algebraic solver built around the
concept of a FRee EXtension from universal algebra.

This module imports the core defintions and concepts.

Reexports

importpublic Data.Setoid
importpublic Data.Finite
importpublic Frex.Signature
importpublic Frex.Algebra
importpublic Frex.Presentation
importpublic Frex.Axiom
importpublic Frex.Model
importpublic Frex.Powers
importpublic Frex.Free
importpublic Frex.Coproduct
importpublic Frex.Frex
importpublic Frex.Frex.Construction
importpublic Frex.Free.Construction.ByFrex
importpublic Frex.Lemma
importpublic Data.Fun.Nary

Definitions

extEnv : (ext : Extensionax) ->Either (casta) x~>cast (ext.Model)
Totality: total
Visibility: public export
extensionLemma : (h : ext1~>ext2) -> (Either (casta) x~~>ext2.Model) .rel ((h.H) .H.extEnvext1) (extEnvext2)
Totality: total
Visibility: public export
frexEnv : (frex : Frexax) ->Either (casta) x~>cast ((frex.Data) .Model)
Totality: total
Visibility: public export
frexify : ext1~>ext2-> (eq : (Term (pres.signature) (Either (Ua) (Ux)), Term (pres.signature) (Either (Ua) (Ux)))) -> (ext1.Model) .rel ((ext1.Model) .Sem (fsteq) ((extEnvext1) .H)) ((ext1.Model) .Sem (sndeq) ((extEnvext1) .H)) -> (ext2.Model) .rel ((ext2.Model) .Sem (fsteq) ((extEnvext2) .H)) ((ext2.Model) .Sem (sndeq) ((extEnvext2) .H))
Totality: total
Visibility: public export
solveVect : (frex : Frexa (irrelevantCast (Finn))) -> (env : Vectn (Ua)) -> (eq : (Term (pres.signature) (Either (Ua) (Finn)), Term (pres.signature) (Either (Ua) (Finn)))) -> ((frex.Data) .Model) .rel (frex.Sem (fsteq) ((frexEnvfrex) .H)) (frex.Sem (sndeq) ((frexEnvfrex) .H)) =>a.rel (a.Sem (fsteq) (either (Delay id) (Delay (flipindexenv)))) (a.Sem (sndeq) (either (Delay id) (Delay (flipindexenv))))
Totality: total
Visibility: public export
solve : (n : Nat) -> (frex : Frexa (cast (Finn))) ->PInHidden (Ua) (\env=> (eq : (Term (pres.signature) (Either (Ua) (Finn)), Term (pres.signature) (Either (Ua) (Finn)))) -> ((frex.Data) .Model) .rel (frex.Sem (fsteq) ((frexEnvfrex) .H)) (frex.Sem (sndeq) ((frexEnvfrex) .H)) =>a.rel (a.Sem (fsteq) (either (Delay id) (Delay (flipindexenv)))) (a.Sem (sndeq) (either (Delay id) (Delay (flipindexenv)))))
Totality: total
Visibility: public export
proveAux : (frex : Frexa (cast (Finn))) -> (eq : (Term (pres.signature) (Either (Ua) (Finn)), Term (pres.signature) (Either (Ua) (Finn)))) -> {autoprf : ((frex.Data) .Model) .rel (frex.Sem (fsteq) ((frexEnvfrex) .H)) (frex.Sem (sndeq) ((frexEnvfrex) .H))} -> ((frex'.Data) .Model) .rel (((frex'.Data) .Model) .Sem (fsteq) (either (Delay ((((frex'.Data) .Embed) .H) .H)) (Delay (((frex'.Data) .Var) .H)))) (((frex'.Data) .Model) .Sem (sndeq) (either (Delay ((((frex'.Data) .Embed) .H) .H)) (Delay (((frex'.Data) .Var) .H))))
Totality: total
Visibility: public export
prove : (n : Nat) -> (frex : Frexa (cast (Finn))) -> (eq : (Term (pres.signature) (Either (Ua) (Finn)), Term (pres.signature) (Either (Ua) (Finn)))) -> {autoprf : ((frex.Data) .Model) .rel (frex.Sem (fsteq) ((frexEnvfrex) .H)) (frex.Sem (sndeq) ((frexEnvfrex) .H))} -> ((frex'.Data) .Model) .rel (((frex'.Data) .Model) .Sem (fsteq) (either (Delay ((((frex'.Data) .Embed) .H) .H)) (Delay (((frex'.Data) .Var) .H)))) (((frex'.Data) .Model) .Sem (sndeq) (either (Delay ((((frex'.Data) .Embed) .H) .H)) (Delay (((frex'.Data) .Var) .H))))
Totality: total
Visibility: public export
.simplify : Frexax->x~>casta->Term (pres.signature) (Either (Ua) (Ux)) ->Ua
Totality: total
Visibility: public export
simplifyGeneral : (frex : Frexax) -> (env : x~>casta) -> (t : Term (pres.signature) (Either (Ua) (Ux))) ->a.rel (a.Semt ((extEnv (MkExtensiona (ida) env)) .H)) (frex.simplifyenvt)
Totality: total
Visibility: public export
simplifyVect : (frex : Frexa (irrelevantCast (Finn))) -> (env : Vectn (Ua)) -> (t : Term (pres.signature) (Either (Ua) (Finn))) ->a.rel (a.Semt ((extEnv (MkExtensiona (ida) (mate (flipindexenv)))) .H)) (frex.simplify (mate (flipindexenv)) t)
Totality: total
Visibility: public export
simplify : (n : Nat) -> (frex : Frexa (cast (Finn))) ->PInHidden (Ua) (\env=> (t : Term (pres.signature) (Either (Ua) (Finn))) ->a.rel (a.Semt ((extEnv (MkExtensiona (ida) (mate (flipindexenv)))) .H)) (frex.simplify (mate (flipindexenv)) t))
Totality: total
Visibility: public export