@@ -193,11 +193,8 @@ Section ProductTopology.
193193 by split => // [[x1 x2] [[/=Ax1 Bx1] [/=Ax2 Bx2]]].
194194 Qed .
195195
196- Definition prod_topology :=
197- TopologicalBase.Build _ _ prod_open_base_covers prod_open_base_setU.
198-
199- (* TODO: make elpi insert coercions! *)
200- HB.instance ((TopologicalSpace.sort T1 * TopologicalSpace.sort T2)%type) prod_topology.
196+ HB.instance Definition prod_topology :=
197+ TopologicalBase.Build (T1 * T2)%type _ prod_open_base_covers prod_open_base_setU.
201198
202199End ProductTopology.
203200
@@ -241,9 +238,8 @@ Section Uniform_Topology.
241238 uniform_open X -> uniform_open Y -> uniform_open (setI X Y).
242239 Admitted .
243240
244- Definition uniform_topology :=
245- Topological.Build _ _ uniform_open_setT (@uniform_open_bigcup) uniform_open_setI.
246- HB.instance (uniform (UniformSpace_wo_Topology.sort U)) uniform_topology.
241+ HB.instance Definition uniform_topology :=
242+ Topological.Build (uniform U) _ uniform_open_setT (@uniform_open_bigcup) uniform_open_setI.
247243
248244End Uniform_Topology.
249245
@@ -281,10 +277,9 @@ Section TAddAGUniform.
281277 exists2 B, TAddAG_entourage B & graph_comp B B `<=` A.
282278 Admitted .
283279
284- Definition TAddAG_uniform :=
285- Uniform_wo_Topology.Build _ _ filter_TAddAG_entourage TAddAG_entourage_sub
280+ HB.instance Definition TAddAG_uniform :=
281+ Uniform_wo_Topology.Build (tAddAG T) _ filter_TAddAG_entourage TAddAG_entourage_sub
286282 TAddAG_entourage_sym TAddAG_entourage_split.
287- HB.instance (tAddAG (TAddAG_wo_Uniform.sort T)) TAddAG_uniform.
288283
289284 Lemma TAddAG_uniform_topologyE :
290285 open = (uniform_open _ : set (set (uniform TT))).
@@ -311,15 +306,20 @@ HB.mixin Record Join_TAddAG_Uniform T of Uniform_TAddAG_unjoined T := {
311306 (* TODO: should be subsumed by the type alias TAddAG *)
312307HB.factory Record TAddAG_Uniform U of TAddAG_wo_Uniform U := { }.
313308
314- HB.builders Context U of TAddAG_Uniform U.
315- Definition to_Uniform_wo_Topology : Uniform_wo_Topology U := (TAddAG_uniform _).
316- HB.instance U to_Uniform_wo_Topology.
309+ HB.builders Context U (a : TAddAG_Uniform U).
310+
311+ HB.instance
312+ Definition to_Uniform_wo_Topology : Uniform_wo_Topology U :=
313+ TAddAG_uniform _.
314+
315+ HB.instance
317316 Definition to_Join_Uniform_Topology : Join_Uniform_Topology U :=
318- (TAddAG_Join_Uniform_Topology _).
319- HB.instance U to_Join_Uniform_Topology.
320- Definition to_Join_TAddAG_Uniform :=
321- (Join_TAddAG_Uniform.Build U (TAddAG_entourageE _)).
322- HB.instance U to_Join_TAddAG_Uniform.
317+ TAddAG_Join_Uniform_Topology _.
318+
319+ HB.instance
320+ Definition to_Join_TAddAG_Uniform : Join_TAddAG_Uniform U :=
321+ Join_TAddAG_Uniform.Build U (TAddAG_entourageE _).
322+
323323HB.end .
324324
325325HB.structure Definition TAddAG :=
@@ -333,18 +333,17 @@ HB.builders Context T (a : JoinTAddAG T).
333333 Definition to_JoinTAddAG_wo_Uniform : JoinTAddAG_wo_Uniform T := a.
334334 HB.instance T to_JoinTAddAG_wo_Uniform.
335335 (* TODO: Nice error message when factory builders do not depend on the source factory 'a' *)
336- Definition to_Uniform := let _ := a in TAddAG_Uniform.Build T.
336+ Definition to_Uniform : TAddAG_Uniform T : = let _ := a in TAddAG_Uniform.Build T.
337337 HB.instance T to_Uniform.
338338HB.end .
339339
340340(* Instance *)
341341
342- Definition Z_ring_axioms :=
343- Ring_of_TYPE.Build _ 0%Z 1%Z Z.add Z.opp Z.mul
342+ HB.instance Definition Z_ring_axioms :=
343+ Ring_of_TYPE.Build Z 0%Z 1%Z Z.add Z.opp Z.mul
344344 Z.add_assoc Z.add_comm Z.add_0_l Z.add_opp_diag_l
345345 Z.mul_assoc Z.mul_1_l Z.mul_1_r
346346 Z.mul_add_distr_r Z.mul_add_distr_l.
347- HB.instance Z Z_ring_axioms.
348347
349348Example test1 (m n : Z) : (m + n) - n + 0 = m.
350349Proof . by rewrite addrK addr0. Qed .
@@ -353,12 +352,11 @@ Require Import Qcanon.
353352Lemma Qcplus_opp_l q : - q + q = 0.
354353Proof . by rewrite Qcplus_comm Qcplus_opp_r. Qed .
355354
356- Definition Qc_ring_axioms :=
357- Ring_of_TYPE.Build _ 0%Qc 1%Qc Qcplus Qcopp Qcmult
355+ HB.instance Definition Qc_ring_axioms :=
356+ Ring_of_TYPE.Build Qc 0%Qc 1%Qc Qcplus Qcopp Qcmult
358357 Qcplus_assoc Qcplus_comm Qcplus_0_l Qcplus_opp_l
359358 Qcmult_assoc Qcmult_1_l Qcmult_1_r
360359 Qcmult_plus_distr_l Qcmult_plus_distr_r.
361- HB.instance Qc Qc_ring_axioms.
362360
363361Obligation Tactic := idtac.
364362Definition Qcopen_base : set (set Qc) :=
0 commit comments