@@ -163,16 +163,15 @@ Lemma ring_correct (R : target_comRing) (n : nat) (l : seq R)
163163 (lpe : seq (RExpr R * RExpr R * PExpr Z * PExpr Z))
164164 (re1 re2 : RExpr R) (pe1 pe2 : PExpr Z) :
165165 Reval_eqs lpe ->
166- (* FIXME: workaround for #87 *)
167- (forall R_of_Z zero opp add sub_ one mul exp,
168- Ring .Rnorm R_of_Z zero add opp sub_ one mul exp
166+ (forall R_of_Z zero opp add sub one mul exp,
167+ Ring .Rnorm R_of_Z zero add opp sub one mul exp
169168 (@target_comRingMorph R) re1 ::
170- Ring .Rnorm R_of_Z zero add opp sub_ one mul exp
169+ Ring .Rnorm R_of_Z zero add opp sub one mul exp
171170 (@target_comRingMorph R) re2 ::
172- Rnorm_list R_of_Z zero add opp sub_ one mul exp lpe =
173- PEeval zero one add mul sub_ opp R_of_Z id exp l pe1 ::
174- PEeval zero one add mul sub_ opp R_of_Z id exp l pe2 ::
175- PEeval_list R_of_Z zero opp add sub_ one mul exp l lpe) ->
171+ Rnorm_list R_of_Z zero add opp sub one mul exp lpe =
172+ PEeval zero one add mul sub opp R_of_Z id exp l pe1 ::
173+ PEeval zero one add mul sub opp R_of_Z id exp l pe2 ::
174+ PEeval_list R_of_Z zero opp add sub one mul exp l lpe) ->
176175 (let norm_subst' :=
177176 norm_subst 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb (triv_div 0 1 Z.eqb) n
178177 (mk_monpol_list
@@ -255,18 +254,17 @@ Lemma field_correct (F : fieldType) (n : nat) (l : seq F)
255254 (lpe : seq (RExpr F * RExpr F * PExpr Z * PExpr Z))
256255 (re1 re2 : RExpr F) (fe1 fe2 : FExpr Z) :
257256 Reval_eqs lpe ->
258- (* FIXME: workaround for #87 *)
259- (forall R_of_Z zero opp add sub_ one mul exp div inv,
260- Field .Rnorm R_of_Z zero add opp sub_ one mul exp inv id re1 ::
261- Field .Rnorm R_of_Z zero add opp sub_ one mul exp inv id re2 ::
262- Rnorm_list R_of_Z zero add opp sub_ one mul exp lpe =
263- FEeval zero one add mul sub_ opp div inv R_of_Z id exp l fe1 ::
264- FEeval zero one add mul sub_ opp div inv R_of_Z id exp l fe2 ::
265- PEeval_list R_of_Z zero opp add sub_ one mul exp l lpe) ->
266- (forall is_true_ negb_ andb_ zero one add mul sub_ opp Feqb F_of_nat exp l',
257+ (forall R_of_Z zero opp add sub one mul exp div inv,
258+ Field .Rnorm R_of_Z zero add opp sub one mul exp inv id re1 ::
259+ Field .Rnorm R_of_Z zero add opp sub one mul exp inv id re2 ::
260+ Rnorm_list R_of_Z zero add opp sub one mul exp lpe =
261+ FEeval zero one add mul sub opp div inv R_of_Z id exp l fe1 ::
262+ FEeval zero one add mul sub opp div inv R_of_Z id exp l fe2 ::
263+ PEeval_list R_of_Z zero opp add sub one mul exp l lpe) ->
264+ (forall is_true_ negb_ andb_ zero one add mul sub opp Feqb F_of_nat exp l',
267265 is_true_ = is_true -> negb_ = negb -> andb_ = andb ->
268266 zero = 0 -> one = 1 -> add = +%R -> mul = *%R ->
269- sub_ = (fun x y => x - y) -> opp = -%R -> Feqb = eq_op ->
267+ sub = (fun x y => x - y) -> opp = -%R -> Feqb = eq_op ->
270268 F_of_nat = GRing.natmul 1 -> exp = @GRing.exp F -> l' = l ->
271269 let F_of_pos p := if p is xH then one else F_of_nat (Pos.to_nat p) in
272270 let F_of_Z n :=
@@ -285,7 +283,7 @@ Lemma field_correct (F : fieldType) (n : nat) (l : seq F)
285283 Peq Z.eqb (norm_subst' (PEmul (num nfe1) (denum nfe2)))
286284 (norm_subst' (PEmul (num nfe2) (denum nfe1))) /\
287285 is_true_ (PCond' true negb_ andb_
288- zero one add mul sub_ opp Feqb F_of_Z nat_of_N exp l'
286+ zero one add mul sub opp Feqb F_of_Z nat_of_N exp l'
289287 (Fapp (Fcons00 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb
290288 (triv_div 0 1 Z.eqb))
291289 (condition nfe1 ++ condition nfe2) [::]))) ->
@@ -310,18 +308,17 @@ Lemma numField_correct (F : numFieldType) (n : nat) (l : seq F)
310308 (lpe : seq (RExpr F * RExpr F * PExpr Z * PExpr Z))
311309 (re1 re2 : RExpr F) (fe1 fe2 : FExpr Z) :
312310 Reval_eqs lpe ->
313- (* FIXME: workaround for #87 *)
314- (forall R_of_Z zero opp add sub_ one mul exp div inv,
315- Field .Rnorm R_of_Z zero add opp sub_ one mul exp inv id re1 ::
316- Field .Rnorm R_of_Z zero add opp sub_ one mul exp inv id re2 ::
317- Rnorm_list R_of_Z zero add opp sub_ one mul exp lpe =
318- FEeval zero one add mul sub_ opp div inv R_of_Z id exp l fe1 ::
319- FEeval zero one add mul sub_ opp div inv R_of_Z id exp l fe2 ::
320- PEeval_list R_of_Z zero opp add sub_ one mul exp l lpe) ->
321- (forall is_true_ negb_ andb_ zero one add mul sub_ opp Feqb F_of_nat exp l',
311+ (forall R_of_Z zero opp add sub one mul exp div inv,
312+ Field .Rnorm R_of_Z zero add opp sub one mul exp inv id re1 ::
313+ Field .Rnorm R_of_Z zero add opp sub one mul exp inv id re2 ::
314+ Rnorm_list R_of_Z zero add opp sub one mul exp lpe =
315+ FEeval zero one add mul sub opp div inv R_of_Z id exp l fe1 ::
316+ FEeval zero one add mul sub opp div inv R_of_Z id exp l fe2 ::
317+ PEeval_list R_of_Z zero opp add sub one mul exp l lpe) ->
318+ (forall is_true_ negb_ andb_ zero one add mul sub opp Feqb F_of_nat exp l',
322319 is_true_ = is_true -> negb_ = negb -> andb_ = andb ->
323320 zero = 0 -> one = 1 -> add = +%R -> mul = *%R ->
324- sub_ = (fun x y => x - y) -> opp = -%R -> Feqb = eq_op ->
321+ sub = (fun x y => x - y) -> opp = -%R -> Feqb = eq_op ->
325322 F_of_nat = GRing.natmul 1 -> exp = @GRing.exp F -> l' = l ->
326323 let F_of_pos p := if p is xH then one else F_of_nat (Pos.to_nat p) in
327324 let F_of_Z n :=
@@ -340,7 +337,7 @@ Lemma numField_correct (F : numFieldType) (n : nat) (l : seq F)
340337 Peq Z.eqb (norm_subst' (PEmul (num nfe1) (denum nfe2)))
341338 (norm_subst' (PEmul (num nfe2) (denum nfe1))) /\
342339 is_true_ (PCond' true negb_ andb_
343- zero one add mul sub_ opp Feqb F_of_Z nat_of_N exp l'
340+ zero one add mul sub opp Feqb F_of_Z nat_of_N exp l'
344341 (Fapp (Fcons2 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb
345342 (triv_div 0 1 Z.eqb))
346343 (condition nfe1 ++ condition nfe2) [::]))) ->
@@ -375,7 +372,7 @@ Ltac field_normalization :=
375372 let one := fresh "one" in
376373 let add := fresh "add" in
377374 let mul := fresh "mul" in
378- let sub := fresh "sub_ " in (* FIXME: workaround for #87 *)
375+ let sub := fresh "sub " in
379376 let opp := fresh "opp" in
380377 let Feqb := fresh "Feqb" in
381378 let F_of_nat := fresh "F_of_nat" in
0 commit comments