Skip to content

Commit 967cd0f

Browse files
authored
Merge pull request #42 from coq-community/coq_18590
Adapt to coq/coq#18590
2 parents 39de8e4 + f6c36b5 commit 967cd0f

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

theories/Classes.v

+9-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Class Graph := {
2525
T: Type;
2626
X: T -> T -> Type;
2727
equal: forall A B, relation (X A B);
28-
equal_:> forall A B, Equivalence (equal A B)
28+
equal_:: forall A B, Equivalence (equal A B)
2929
}.
3030

3131
(*Arguments equal : simpl never.*)
@@ -91,31 +91,31 @@ Section Structures.
9191
Context {Mo: Monoid_Ops G} {SLo: SemiLattice_Ops G} {Ko: Star_Op G} {Co: Converse_Op G}.
9292

9393
Class Monoid := {
94-
dot_compat:> forall A B C, Proper (equal A B ==> equal B C ==> equal A C) (dot A B C);
94+
dot_compat:: forall A B C, Proper (equal A B ==> equal B C ==> equal A C) (dot A B C);
9595
dot_assoc: forall A B C D (x: X A B) y (z: X C D), x*(y*z) == (x*y)*z;
9696
dot_neutral_left: forall A B (x: X A B), 1*x == x;
9797
dot_neutral_right: forall A B (x: X B A), x*1 == x
9898
}.
9999

100100
Class SemiLattice := {
101-
plus_compat:> forall A B, Proper (equal A B ==> equal A B ==> equal A B) (plus A B);
101+
plus_compat:: forall A B, Proper (equal A B ==> equal A B ==> equal A B) (plus A B);
102102
plus_neutral_left: forall A B (x: X A B), 0+x == x;
103103
plus_idem: forall A B (x: X A B), x+x == x;
104104
plus_assoc: forall A B (x y z: X A B), x+(y+z) == (x+y)+z;
105105
plus_com: forall A B (x y: X A B), x+y == y+x
106106
}.
107107

108108
Class IdemSemiRing := {
109-
ISR_Monoid :> Monoid;
110-
ISR_SemiLattice :> SemiLattice;
109+
ISR_Monoid :: Monoid;
110+
ISR_SemiLattice :: SemiLattice;
111111
dot_ann_left: forall A B C (x: X B C), zero A B * x == 0;
112112
dot_ann_right: forall A B C (x: X C B), x * zero B A == 0;
113113
dot_distr_left: forall A B C (x y: X A B) (z: X B C), (x+y)*z == x*z + y*z;
114114
dot_distr_right: forall A B C (x y: X B A) (z: X C B), z*(x+y) == z*x + z*y
115115
}.
116116

117117
Class KleeneAlgebra := {
118-
KA_ISR :> IdemSemiRing;
118+
KA_ISR :: IdemSemiRing;
119119
star_make_left: forall A (a:X A A), 1 + a#*a == a#;
120120
star_destruct_left: forall A B (a: X A A) (c: X A B), a*c <== c -> a#*c <== c;
121121
star_destruct_right: forall A B (a: X A A) (c: X B A), c*a <== c -> c*a# <== c
@@ -127,12 +127,12 @@ Section Structures.
127127
(* TODO: introduce an intermediate ConverseMonoid class *)
128128

129129
Class ConverseIdemSemiRing := {
130-
CISR_SL :> SemiLattice;
130+
CISR_SL :: SemiLattice;
131131
dot_compat_c: forall A B C, Proper (equal A B ==> equal B C ==> equal A C) (dot A B C);
132132
dot_assoc_c: forall A B C D (x: X A B) y (z: X C D), x*(y*z) == (x*y)*z;
133133
dot_neutral_left_c: forall A B (x: X A B), 1*x == x;
134134

135-
conv_compat:> forall A B, Proper (equal A B ==> equal B A) (conv A B);
135+
conv_compat:: forall A B, Proper (equal A B ==> equal B A) (conv A B);
136136
conv_invol: forall A B (x: X A B), x`` == x;
137137
conv_dot: forall A B C (x: X A B) (y: X B C), (x*y)` == y`*x`;
138138
conv_plus: forall A B (x y: X A B), (x+y)` == y`+x`;
@@ -141,7 +141,7 @@ Section Structures.
141141
}.
142142

143143
Class ConverseKleeneAlgebra := {
144-
CKA_CISR :> ConverseIdemSemiRing;
144+
CKA_CISR :: ConverseIdemSemiRing;
145145
star_make_left_c: forall A (a:X A A), 1 + a#*a == a#;
146146
star_destruct_left_c: forall A B (a: X A A) (c: X A B), a*c <== c -> a#*c <== c
147147
}.

theories/DKA_DFA_Equiv.v

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ Section correctness.
182182

183183
Class invariant tarjan : Prop :=
184184
{
185-
i_wf_tarjan :> DS.WF tarjan ;
185+
i_wf_tarjan :: DS.WF tarjan ;
186186
i_final : forall x y, {{tarjan}} x y -> final x = final y
187187
}.
188188

theories/Functors.v

+5-5
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ Section Defs.
3636
forall A B y, exists x, F A B x == y.
3737

3838
Class monoid_functor {Mo1: Monoid_Ops G1} {Mo2: Monoid_Ops G2} (F: functor G1 G2) := {
39-
monoid_graph_functor :> graph_functor F;
39+
monoid_graph_functor :: graph_functor F;
4040
functor_dot : forall A B C x y, F A C (x*y) == F A B x * F B C y;
4141
functor_one : forall A, F A A 1 == 1
4242
}.
4343

4444
Class semilattice_functor {SLo1: SemiLattice_Ops G1} {SL2: SemiLattice_Ops G2} (F: functor G1 G2) := {
45-
semilattice_graph_functor :> graph_functor F;
45+
semilattice_graph_functor :: graph_functor F;
4646
functor_plus : forall A B x y, F A B (x+y) == F A B x + F A B y;
4747
functor_zero : forall A B, F A B 0 == 0
4848
}.
@@ -71,8 +71,8 @@ Section Defs.
7171
{Ko1: Star_Op G1} {Ko2: Star_Op G2}.
7272

7373
Class semiring_functor (F: functor G1 G2) := {
74-
semiring_monoid_functor :> monoid_functor F;
75-
semiring_semilattice_functor :> semilattice_functor F
74+
semiring_monoid_functor :: monoid_functor F;
75+
semiring_semilattice_functor :: semilattice_functor F
7676
}.
7777

7878
Lemma functor_star_leq {KA1: KleeneAlgebra G1} {KA2: KleeneAlgebra G2}
@@ -88,7 +88,7 @@ Section Defs.
8888
Qed.
8989

9090
Class kleene_functor (F: functor G1 G2) := {
91-
kleene_semiring :> semiring_functor F;
91+
kleene_semiring :: semiring_functor F;
9292
functor_star: forall A a, F A A (a#) == (F A A a) #
9393
}.
9494

theories/StrictKleeneAlgebra.v

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ Delimit Scope SA_scope with SA.
4141

4242
(** Strict Kleene Algebras axioms *)
4343
Class StrictKleeneAlgebra {G: Graph} {Ops: SKA_Ops G} := {
44-
dot_compat:>
44+
dot_compat::
4545
forall A B C, Proper (equal A B ==> equal B C ==> equal A C) (dot A B C);
46-
plus_compat:>
46+
plus_compat::
4747
forall A B, Proper (equal A B ==> equal A B ==> equal A B) (plus A B);
4848
dot_assoc: forall A B C D (x: X A B) y (z: X C D), x*(y*z) == (x*y)*z;
4949
dot_neutral_left: forall A B (x: X A B), 1*x == x;

0 commit comments

Comments
 (0)