@@ -40,7 +40,7 @@ Notation "a ~>_ C b" := (@hom C a b)
4040 (at level 99, C at level 0, only parsing) : cat_scope.
4141
4242(* precategories are quivers + id and comp *)
43- HB.mixin Record Quiver_IsPreCat C of Quiver C := {
43+ HB.mixin Record Quiver_IsPreCat C & Quiver C := {
4444 idmap : forall (a : C), a ~> a;
4545 comp : forall (a b c : C), (a ~> b) -> (b ~> c) -> (a ~> c);
4646}.
@@ -50,7 +50,7 @@ HB.factory Record IsPreCat C := {
5050 idmap : forall (a : C), hom a a;
5151 comp : forall (a b c : C), hom a b -> hom b c -> hom a c;
5252}.
53- HB.builders Context C of IsPreCat C.
53+ HB.builders Context C & IsPreCat C.
5454 HB.instance Definition _ := IsQuiver.Build C hom.
5555 HB.instance Definition _ := Quiver_IsPreCat.Build C idmap comp.
5656HB.end .
@@ -70,7 +70,7 @@ Notation "f \; g" := (comp f g) : cat_scope.
7070Notation "\idmap_ a" := (@idmap _ a) (only parsing, at level 0) : cat_scope.
7171
7272(* categories are precategories + laws *)
73- HB.mixin Record PreCat_IsCat C of PreCat C := {
73+ HB.mixin Record PreCat_IsCat C & PreCat C := {
7474 comp1o : forall (a b : C) (f : a ~> b), idmap \; f = f;
7575 compo1 : forall (a b : C) (f : a ~> b), f \; idmap = f;
7676 compoA : forall (a b c d : C) (f : a ~> b) (g : b ~> c) (h : c ~> d),
144144
145145(* a functor is a prefunctor + laws for id and comp *)
146146HB.mixin Record PreFunctor_IsFunctor (C D : precat) (F : C -> D)
147- of @PreFunctor C D F := {
147+ & @PreFunctor C D F := {
148148 F1 : forall (a : C), F <$> \idmap_a = idmap;
149149 Fcomp : forall (a b c : C) (f : a ~> b) (g : b ~> c),
150150 F <$> (f \; g) = F <$> f \; F <$> g;
@@ -227,7 +227,7 @@ HB.instance Definition _ := cat_cat.
227227Check (cat : cat).
228228
229229(* concrete categories *)
230- HB.mixin Record Quiver_IsPreConcrete T of Quiver T := {
230+ HB.mixin Record Quiver_IsPreConcrete T & Quiver T := {
231231 concrete : T -> U;
232232 concrete_fun : forall (a b : T), (a ~> b) -> concrete a -> concrete b;
233233}.
@@ -238,7 +238,7 @@ HB.structure Definition PreConcreteQuiver : Set :=
238238Set Universe Checking.
239239Coercion concrete : PreConcreteQuiver.sort >-> Sortclass.
240240
241- HB.mixin Record PreConcrete_IsConcrete T of PreConcreteQuiver T := {
241+ HB.mixin Record PreConcrete_IsConcrete T & PreConcreteQuiver T := {
242242 concrete_fun_inj : forall (a b : T), injective (concrete_fun a b)
243243}.
244244Unset Universe Checking.
@@ -250,7 +250,7 @@ Set Universe Checking.
250250HB.instance Definition _ (C : ConcreteQuiver.type) :=
251251 IsPreFunctor.Build _ _ (concrete : C -> U) concrete_fun.
252252
253- HB.mixin Record PreCat_IsConcrete T of ConcreteQuiver T & PreCat T := {
253+ HB.mixin Record PreCat_IsConcrete T & ConcreteQuiver T & PreCat T := {
254254 concrete1 : forall (a : T), concrete <$> \idmap_a = idfun;
255255 concrete_comp : forall (a b c : T) (f : a ~> b) (g : b ~> c),
256256 concrete <$> (f \; g) = ((concrete <$> g) \o (concrete <$> f))%function;
@@ -308,7 +308,7 @@ HB.instance Definition _ := PreCat_IsConcrete.Build cat
308308 (fun => erefl) (fun _ _ _ _ _ => erefl).
309309
310310(* constant functor *)
311- Definition cst (C D : quiver) (c : C) := fun of D => c.
311+ Definition cst (C D : quiver) (c : C) := fun & D => c.
312312Arguments cst {C} D c.
313313HB.instance Definition _ {C D : precat} (c : C) :=
314314 IsPreFunctor.Build D C (cst D c) (fun _ _ _ => idmap).
@@ -574,7 +574,7 @@ Lemma delta_functor {C D : cat} : PreFunctor_IsFunctor _ _ (delta C D).
574574Proof . by constructor=> [a|a b c f g]; exact/natP. Qed .
575575HB.instance Definition _ C D := @delta_functor C D.
576576
577- HB.mixin Record IsMonad (C : precat) (M : C -> C) of @PreFunctor C C M := {
577+ HB.mixin Record IsMonad (C : precat) (M : C -> C) & @PreFunctor C C M := {
578578 unit : idfun ~~> M;
579579 join : (M \o M)%function ~~> M;
580580 bind : forall (a b : C), (a ~> M b) -> (M a ~> M b);
@@ -591,19 +591,19 @@ HB.structure Definition PreMonad (C : precat) :=
591591HB.structure Definition Monad (C : precat) :=
592592 {M of @Functor C C M & IsMonad C M}.
593593
594- HB.factory Record IsJoinMonad (C : precat) (M : C -> C) of @PreFunctor C C M := {
594+ HB.factory Record IsJoinMonad (C : precat) (M : C -> C) & @PreFunctor C C M := {
595595 unit : idfun ~~> M;
596596 join : (M \o M)%function ~~> M;
597597 unit_join : forall a, (M <$> unit a) \; join _ = idmap;
598598 join_unit : forall a, join _ \; (M <$> unit a) = idmap;
599599 join_square : forall a, M <$> join a \; join _ = join _ \; join _
600600}.
601- HB.builders Context C M of IsJoinMonad C M.
601+ HB.builders Context C M & IsJoinMonad C M.
602602 HB.instance Definition _ := IsMonad.Build C M
603603 (fun a b f => erefl) unit_join join_unit join_square.
604604HB.end .
605605
606- HB.mixin Record IsCoMonad (C : precat) (M : C -> C) of @IsPreFunctor C C M := {
606+ HB.mixin Record IsCoMonad (C : precat) (M : C -> C) & @IsPreFunctor C C M := {
607607 counit : M ~~> idfun;
608608 cojoin : M ~~> (M \o M)%function;
609609 cobind : forall (a b : C), (M a ~> b) -> (M a ~> M b);
@@ -619,14 +619,14 @@ HB.structure Definition PreCoMonad (C : precat) :=
619619HB.structure Definition CoMonad (C : precat) :=
620620 {M of @Functor C C M & IsCoMonad C M}.
621621
622- HB.factory Record IsJoinCoMonad (C : precat) (M : C -> C) of @IsPreFunctor C C M := {
622+ HB.factory Record IsJoinCoMonad (C : precat) (M : C -> C) & @IsPreFunctor C C M := {
623623 counit : M ~~> idfun;
624624 cojoin : M ~~> (M \o M)%function;
625625 unit_cojoin : forall a, (M <$> counit a) \; cojoin _ = idmap;
626626 join_counit : forall a, cojoin _ \; (M <$> counit a) = idmap;
627627 cojoin_square : forall a, cojoin _ \; M <$> cojoin a = cojoin _ \; cojoin _
628628}.
629- HB.builders Context C M of IsJoinCoMonad C M.
629+ HB.builders Context C M & IsJoinCoMonad C M.
630630 HB.instance Definition _ := IsCoMonad.Build C M
631631 (fun a b f => erefl) unit_cojoin join_counit cojoin_square.
632632HB.end .
@@ -822,7 +822,7 @@ Definition feqsym {C : precat} {a b : C} : a = b -> b ~> a.
822822Proof . by move<-; exact idmap. Defined .
823823
824824HB.mixin Record IsLeftAdjointOf (C D : cat) (R : D ~> C) L
825- of @Functor C D L := {
825+ & @Functor C D L := {
826826 Lphi : forall c d, (L c ~> d) -> (c ~> R d);
827827 Lpsi : forall c d, (c ~> R d) -> (L c ~> d);
828828 (* there should be a monad and comonad structure wrappers instead *)
@@ -861,7 +861,7 @@ Arguments Lcounit {C D R s}.
861861(* End LeftAdjointOf_Theory. *)
862862
863863HB.mixin Record IsRightAdjoint (D C : cat) (R : D -> C)
864- of @Functor D C R := {
864+ & @Functor D C R := {
865865 (* we should have a wrapper instead *)
866866 left_adjoint : C ~> D;
867867 LLphi : forall c d, (left_adjoint c ~> d) -> (c ~> R d);
@@ -886,7 +886,7 @@ Arguments LLpsi {D C s} {c d}.
886886Arguments LLunit {D C s}.
887887Arguments LLcounit {D C s}.
888888
889- HB.mixin Record PreCat_IsMonoidal C of PreCat C := {
889+ HB.mixin Record PreCat_IsMonoidal C & PreCat C := {
890890 onec : C;
891891 prod : (C * C)%type ~>_precat C;
892892}.
@@ -906,7 +906,7 @@ Definition hom_cast {C : quiver} {a a' : C} (eqa : a = a')
906906 (a ~> b) -> (a' ~> b').
907907Proof . now elim: _ / eqa; elim: _ / eqb. Defined .
908908
909- HB.mixin Record PreFunctor_IsMonoidal (C D : premonoidal) F of
909+ HB.mixin Record PreFunctor_IsMonoidal (C D : premonoidal) F &
910910 @PreFunctor C D F := {
911911 fun_one : F 1 = 1;
912912 fun_prod : forall (x y : C), F (x * y) = F x * F y;
@@ -949,7 +949,7 @@ HB.instance Definition _ {C : premonoidal} :=
949949 IsPreFunctor.Build C C prod1l
950950 (fun (a b : C) (f : a ~> b) => f <*> \idmap_1).
951951
952- HB.mixin Record PreMonoidal_IsMonoidal C of PreMonoidal C := {
952+ HB.mixin Record PreMonoidal_IsMonoidal C & PreMonoidal C := {
953953 prodA : prod3l ~~> prod3r;
954954 prod1c : prod1r ~~> idfun;
955955 prodc1 : prod1l ~~> idfun;
@@ -1070,7 +1070,7 @@ HB.mixin Record IsIdeal (R : ring) (I : R -> Prop) := {
10701070}.
10711071HB.structure Definition Ideal (R : ring) := { I of IsIdeal R I }.
10721072
1073- HB.mixin Record Ideal_IsPrime (R : ring) (I : R -> Prop ) of IsIdeal R I := {
1073+ HB.mixin Record Ideal_IsPrime (R : ring) (I : R -> Prop ) & IsIdeal R I := {
10741074 ideal_prime : forall x y : R, I (x * y)%A -> I x \/ I y
10751075}.
10761076#[short(type="spectrum")]
0 commit comments