@@ -163,16 +163,15 @@ Lemma ring_correct (R : target_comRing) (n : nat) (l : seq R)
163
163
(lpe : seq (RExpr R * RExpr R * PExpr Z * PExpr Z))
164
164
(re1 re2 : RExpr R) (pe1 pe2 : PExpr Z) :
165
165
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
169
168
(@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
171
170
(@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) ->
176
175
(let norm_subst' :=
177
176
norm_subst 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb (triv_div 0 1 Z.eqb) n
178
177
(mk_monpol_list
@@ -255,18 +254,17 @@ Lemma field_correct (F : fieldType) (n : nat) (l : seq F)
255
254
(lpe : seq (RExpr F * RExpr F * PExpr Z * PExpr Z))
256
255
(re1 re2 : RExpr F) (fe1 fe2 : FExpr Z) :
257
256
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',
267
265
is_true_ = is_true -> negb_ = negb -> andb_ = andb ->
268
266
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 ->
270
268
F_of_nat = GRing.natmul 1 -> exp = @GRing.exp F -> l' = l ->
271
269
let F_of_pos p := if p is xH then one else F_of_nat (Pos.to_nat p) in
272
270
let F_of_Z n :=
@@ -285,7 +283,7 @@ Lemma field_correct (F : fieldType) (n : nat) (l : seq F)
285
283
Peq Z.eqb (norm_subst' (PEmul (num nfe1) (denum nfe2)))
286
284
(norm_subst' (PEmul (num nfe2) (denum nfe1))) /\
287
285
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'
289
287
(Fapp (Fcons00 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb
290
288
(triv_div 0 1 Z.eqb))
291
289
(condition nfe1 ++ condition nfe2) [::]))) ->
@@ -310,18 +308,17 @@ Lemma numField_correct (F : numFieldType) (n : nat) (l : seq F)
310
308
(lpe : seq (RExpr F * RExpr F * PExpr Z * PExpr Z))
311
309
(re1 re2 : RExpr F) (fe1 fe2 : FExpr Z) :
312
310
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',
322
319
is_true_ = is_true -> negb_ = negb -> andb_ = andb ->
323
320
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 ->
325
322
F_of_nat = GRing.natmul 1 -> exp = @GRing.exp F -> l' = l ->
326
323
let F_of_pos p := if p is xH then one else F_of_nat (Pos.to_nat p) in
327
324
let F_of_Z n :=
@@ -340,7 +337,7 @@ Lemma numField_correct (F : numFieldType) (n : nat) (l : seq F)
340
337
Peq Z.eqb (norm_subst' (PEmul (num nfe1) (denum nfe2)))
341
338
(norm_subst' (PEmul (num nfe2) (denum nfe1))) /\
342
339
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'
344
341
(Fapp (Fcons2 0 1 Z.add Z.mul Z.sub Z.opp Z.eqb
345
342
(triv_div 0 1 Z.eqb))
346
343
(condition nfe1 ++ condition nfe2) [::]))) ->
@@ -375,7 +372,7 @@ Ltac field_normalization :=
375
372
let one := fresh "one" in
376
373
let add := fresh "add" in
377
374
let mul := fresh "mul" in
378
- let sub := fresh "sub_ " in (* FIXME: workaround for #87 *)
375
+ let sub := fresh "sub " in
379
376
let opp := fresh "opp" in
380
377
let Feqb := fresh "Feqb" in
381
378
let F_of_nat := fresh "F_of_nat" in
0 commit comments