|
2 | 2 |
|
3 | 3 | license: GNU Lesser General Public License Version 2.1 or later |
4 | 4 | ------------------------------------------------------------------------- *) |
5 | | - |
6 | | -Require Import eqb_core_defs. |
7 | | -Require Import tag eqType_ast fields eqb eqbcorrect derive. |
| 5 | + |
| 6 | +From elpi.apps.derive Require Import eqb_core_defs. |
| 7 | +From elpi.apps.derive Require Import tag eqType_ast fields eqb eqbcorrect derive. |
8 | 8 |
|
9 | 9 | From elpi.apps.derive.elpi Extra Dependency "eqbOK.elpi" as eqbOK. |
10 | 10 | From elpi.apps.derive.elpi Extra Dependency "eqType.elpi" as eqType. |
@@ -61,3 +61,35 @@ derivation (indt T) Prefix ff (derive "eqbOK" (derive.eqbOK.main (indt T) Prefix |
61 | 61 | derivation (const T) Prefix ff (derive "eqbOK-alias" (derive.eqbOK.main (const T) Prefix) (eqbok-for (const T) _)). |
62 | 62 |
|
63 | 63 | }}. |
| 64 | + |
| 65 | + |
| 66 | +Elpi Command derive.eqbOK.register_axiom. |
| 67 | +Elpi Accumulate Db derive.eqb.db. |
| 68 | +Elpi Accumulate Db derive.eqbcorrect.db. |
| 69 | +Elpi Accumulate Db derive.param1.db. |
| 70 | +Elpi Accumulate Db derive.param1.trivial.db. |
| 71 | +Elpi Accumulate Db derive.eqType.db. |
| 72 | +Elpi Accumulate File eqType. |
| 73 | +Elpi Accumulate lp:{{ |
| 74 | + main [str Type, str IsT, str IsTinhab, str Eqb, str Correct, str Refl] :- !, |
| 75 | + coq.locate Type GrType, |
| 76 | + coq.locate IsT GRisT, |
| 77 | + coq.locate IsTinhab GRisTinhab, |
| 78 | + coq.locate Eqb GrEqb, |
| 79 | + coq.locate Correct GrCorrect, |
| 80 | + coq.locate Refl GrRefl, |
| 81 | + GrRefl = const R, |
| 82 | + GrCorrect = const C, |
| 83 | + coq.elpi.accumulate _ "derive.eqb.db" (clause _ _ (eqb-done GrType)), |
| 84 | + coq.elpi.accumulate _ "derive.eqb.db" (clause _ _ (eqb-for (global GrType) (global GrType) (global GrEqb))), |
| 85 | + coq.elpi.accumulate _ "derive.eqbcorrect.db" (clause _ _ (eqcorrect-for GrType C R)), |
| 86 | + coq.elpi.accumulate _ "derive.eqbcorrect.db" (clause _ _ (correct-lemma-for (global GrType) (global GrCorrect))), |
| 87 | + coq.elpi.accumulate _ "derive.eqbcorrect.db" (clause _ _ (refl-lemma-for (global GrType) (global GrRefl))), |
| 88 | + coq.elpi.accumulate _ "derive.eqType.db" (clause _ _ (eqType GrType eqb.axiom)), |
| 89 | + coq.elpi.accumulate _ "derive.param1.db" (clause _ _ (reali-done GrType)), |
| 90 | + coq.elpi.accumulate _ "derive.param1.db" (clause _ (before "reali:fail") (reali (global GrType) (global GRisT) :- !)), |
| 91 | + coq.elpi.accumulate _ "derive.param1.db" (clause _ (before "realiR:fail") (realiR (global GrType) (global GRisT) :- !)), |
| 92 | + coq.elpi.accumulate _ "derive.param1.trivial.db" (clause _ _ (param1-inhab-db (global GRisT) (global GRisTinhab))). |
| 93 | + main _ :- coq.error "usage: derive.eqbOK.register_axiom T is_T is_T_inhab eqb eqb_correct eqb_refl.". |
| 94 | +}}. |
| 95 | +Elpi Export derive.eqbOK.register_axiom. |
0 commit comments