Idris2Doc : Frex
Index
Default
Alternative
Black & White
Reexports import public Data.Setoidimport public Data.Finiteimport public Frex.Signatureimport public Frex.Algebraimport public Frex.Presentationimport public Frex.Axiomimport public Frex.Modelimport public Frex.Powersimport public Frex.Freeimport public Frex.Coproductimport public Frex.Freximport public Frex.Frex.Constructionimport public Frex.Free.Construction.ByFreximport public Frex.Lemmaimport public Data.Fun.Nary
Definitions extEnv : (ext : Extension a x ) -> Either (cast a ) x ~> cast (ext .Model )
Totality : total Visibility : public export extensionLemma : (h : ext1 ~> ext2 ) -> (Either (cast a ) x ~~> ext2 .Model ) .rel ((h .H ) .H . extEnv ext1 ) (extEnv ext2 )
Totality : total Visibility : public export frexEnv : (frex : Frex a x ) -> Either (cast a ) x ~> cast ((frex .Data ) .Model )
Totality : total Visibility : public export frexify : ext1 ~> ext2 -> (eq : (Term (pres .signature ) (Either (U a ) (U x )), Term (pres .signature ) (Either (U a ) (U x )))) -> (ext1 .Model ) .rel ((ext1 .Model ) .Sem (fst eq ) ((extEnv ext1 ) .H )) ((ext1 .Model ) .Sem (snd eq ) ((extEnv ext1 ) .H )) -> (ext2 .Model ) .rel ((ext2 .Model ) .Sem (fst eq ) ((extEnv ext2 ) .H )) ((ext2 .Model ) .Sem (snd eq ) ((extEnv ext2 ) .H ))
Totality : total Visibility : public export solveVect : (frex : Frex a (irrelevantCast (Fin n ))) -> (env : Vect n (U a )) -> (eq : (Term (pres .signature ) (Either (U a ) (Fin n )), Term (pres .signature ) (Either (U a ) (Fin n )))) -> ((frex .Data ) .Model ) .rel (frex .Sem (fst eq ) ((frexEnv frex ) .H )) (frex .Sem (snd eq ) ((frexEnv frex ) .H )) => a .rel (a .Sem (fst eq ) (either (Delay id ) (Delay (flip index env )))) (a .Sem (snd eq ) (either (Delay id ) (Delay (flip index env ))))
Totality : total Visibility : public export solve : (n : Nat ) -> (frex : Frex a (cast (Fin n ))) -> PI n Hidden (U a ) (\env => (eq : (Term (pres .signature ) (Either (U a ) (Fin n )), Term (pres .signature ) (Either (U a ) (Fin n )))) -> ((frex .Data ) .Model ) .rel (frex .Sem (fst eq ) ((frexEnv frex ) .H )) (frex .Sem (snd eq ) ((frexEnv frex ) .H )) => a .rel (a .Sem (fst eq ) (either (Delay id ) (Delay (flip index env )))) (a .Sem (snd eq ) (either (Delay id ) (Delay (flip index env )))))
Totality : total Visibility : public export proveAux : (frex : Frex a (cast (Fin n ))) -> (eq : (Term (pres .signature ) (Either (U a ) (Fin n )), Term (pres .signature ) (Either (U a ) (Fin n )))) -> {auto prf : ((frex .Data ) .Model ) .rel (frex .Sem (fst eq ) ((frexEnv frex ) .H )) (frex .Sem (snd eq ) ((frexEnv frex ) .H ))} -> ((frex' .Data ) .Model ) .rel (((frex' .Data ) .Model ) .Sem (fst eq ) (either (Delay ((((frex' .Data ) .Embed ) .H ) .H )) (Delay (((frex' .Data ) .Var ) .H )))) (((frex' .Data ) .Model ) .Sem (snd eq ) (either (Delay ((((frex' .Data ) .Embed ) .H ) .H )) (Delay (((frex' .Data ) .Var ) .H ))))
Totality : total Visibility : public export prove : (n : Nat ) -> (frex : Frex a (cast (Fin n ))) -> (eq : (Term (pres .signature ) (Either (U a ) (Fin n )), Term (pres .signature ) (Either (U a ) (Fin n )))) -> {auto prf : ((frex .Data ) .Model ) .rel (frex .Sem (fst eq ) ((frexEnv frex ) .H )) (frex .Sem (snd eq ) ((frexEnv frex ) .H ))} -> ((frex' .Data ) .Model ) .rel (((frex' .Data ) .Model ) .Sem (fst eq ) (either (Delay ((((frex' .Data ) .Embed ) .H ) .H )) (Delay (((frex' .Data ) .Var ) .H )))) (((frex' .Data ) .Model ) .Sem (snd eq ) (either (Delay ((((frex' .Data ) .Embed ) .H ) .H )) (Delay (((frex' .Data ) .Var ) .H ))))
Totality : total Visibility : public export .simplify : Frex a x -> x ~> cast a -> Term (pres .signature ) (Either (U a ) (U x )) -> U a
Totality : total Visibility : public export simplifyGeneral : (frex : Frex a x ) -> (env : x ~> cast a ) -> (t : Term (pres .signature ) (Either (U a ) (U x ))) -> a .rel (a .Sem t ((extEnv (MkExtension a (id a ) env )) .H )) (frex .simplify env t )
Totality : total Visibility : public export simplifyVect : (frex : Frex a (irrelevantCast (Fin n ))) -> (env : Vect n (U a )) -> (t : Term (pres .signature ) (Either (U a ) (Fin n ))) -> a .rel (a .Sem t ((extEnv (MkExtension a (id a ) (mate (flip index env )))) .H )) (frex .simplify (mate (flip index env )) t )
Totality : total Visibility : public export simplify : (n : Nat ) -> (frex : Frex a (cast (Fin n ))) -> PI n Hidden (U a ) (\env => (t : Term (pres .signature ) (Either (U a ) (Fin n ))) -> a .rel (a .Sem t ((extEnv (MkExtension a (id a ) (mate (flip index env )))) .H )) (frex .simplify (mate (flip index env )) t ))
Totality : total Visibility : public export Produced by Idris 2 version 0.7.0-7ce4c45e8