@@ -345,8 +345,8 @@ let left_action_morphism f mf la lb = forall (g: ma) (x: a). lb.act (mf g) (f x)
345
345
Module after type checking:
346
346
module Monoid
347
347
Declarations: [
348
- let right_unitality_lemma m u476 mult = forall (x: m). mult x u476 == x
349
- let left_unitality_lemma m u476 mult = forall (x: m). mult u476 x == x
348
+ let right_unitality_lemma m u466 mult = forall (x: m). mult x u466 == x
349
+ let left_unitality_lemma m u466 mult = forall (x: m). mult u466 x == x
350
350
let associativity_lemma m mult = forall (x: m) (y: m) (z: m). mult (mult x y) z == mult x (mult y z)
351
351
unopteq
352
352
type monoid (m: Type) =
@@ -382,25 +382,25 @@ val monoid__uu___haseq: Prims.l_True /\
382
382
383
383
384
384
385
- let intro_monoid m u476 mult = Monoid.Monoid u476 mult () () () <: Prims.Pure (Monoid.monoid m)
385
+ let intro_monoid m u466 mult = Monoid.Monoid u466 mult () () () <: Prims.Pure (Monoid.monoid m)
386
386
let nat_plus_monoid =
387
387
let add x y = x + y <: Prims.nat in
388
388
Monoid.intro_monoid Prims.nat 0 add
389
389
let int_plus_monoid = Monoid.intro_monoid Prims.int 0 Prims.op_Addition
390
390
let conjunction_monoid =
391
- let u474 = FStar.Pervasives.singleton Prims.l_True in
391
+ let u464 = FStar.Pervasives.singleton Prims.l_True in
392
392
let mult p q = p /\ q <: Prims.prop in
393
393
let left_unitality_helper p =
394
- (assert (mult u474 p <==> p);
395
- FStar.PropositionalExtensionality.apply (mult u474 p) p)
394
+ (assert (mult u464 p <==> p);
395
+ FStar.PropositionalExtensionality.apply (mult u464 p) p)
396
396
<:
397
- FStar.Pervasives.Lemma (ensures mult u474 p == p)
397
+ FStar.Pervasives.Lemma (ensures mult u464 p == p)
398
398
in
399
399
let right_unitality_helper p =
400
- (assert (mult p u474 <==> p);
401
- FStar.PropositionalExtensionality.apply (mult p u474 ) p)
400
+ (assert (mult p u464 <==> p);
401
+ FStar.PropositionalExtensionality.apply (mult p u464 ) p)
402
402
<:
403
- FStar.Pervasives.Lemma (ensures mult p u474 == p)
403
+ FStar.Pervasives.Lemma (ensures mult p u464 == p)
404
404
in
405
405
let associativity_helper p1 p2 p3 =
406
406
(assert (mult (mult p1 p2) p3 <==> mult p1 (mult p2 p3));
@@ -409,26 +409,26 @@ let conjunction_monoid =
409
409
FStar.Pervasives.Lemma (ensures mult (mult p1 p2) p3 == mult p1 (mult p2 p3))
410
410
in
411
411
FStar.Classical.forall_intro right_unitality_helper;
412
- assert (Monoid.right_unitality_lemma Prims.prop u474 mult);
412
+ assert (Monoid.right_unitality_lemma Prims.prop u464 mult);
413
413
FStar.Classical.forall_intro left_unitality_helper;
414
- assert (Monoid.left_unitality_lemma Prims.prop u474 mult);
414
+ assert (Monoid.left_unitality_lemma Prims.prop u464 mult);
415
415
FStar.Classical.forall_intro_3 associativity_helper;
416
416
assert (Monoid.associativity_lemma Prims.prop mult);
417
- Monoid.intro_monoid Prims.prop u474 mult
417
+ Monoid.intro_monoid Prims.prop u464 mult
418
418
let disjunction_monoid =
419
- let u474 = FStar.Pervasives.singleton Prims.l_False in
419
+ let u464 = FStar.Pervasives.singleton Prims.l_False in
420
420
let mult p q = p \/ q <: Prims.prop in
421
421
let left_unitality_helper p =
422
- (assert (mult u474 p <==> p);
423
- FStar.PropositionalExtensionality.apply (mult u474 p) p)
422
+ (assert (mult u464 p <==> p);
423
+ FStar.PropositionalExtensionality.apply (mult u464 p) p)
424
424
<:
425
- FStar.Pervasives.Lemma (ensures mult u474 p == p)
425
+ FStar.Pervasives.Lemma (ensures mult u464 p == p)
426
426
in
427
427
let right_unitality_helper p =
428
- (assert (mult p u474 <==> p);
429
- FStar.PropositionalExtensionality.apply (mult p u474 ) p)
428
+ (assert (mult p u464 <==> p);
429
+ FStar.PropositionalExtensionality.apply (mult p u464 ) p)
430
430
<:
431
- FStar.Pervasives.Lemma (ensures mult p u474 == p)
431
+ FStar.Pervasives.Lemma (ensures mult p u464 == p)
432
432
in
433
433
let associativity_helper p1 p2 p3 =
434
434
(assert (mult (mult p1 p2) p3 <==> mult p1 (mult p2 p3));
@@ -437,12 +437,12 @@ let disjunction_monoid =
437
437
FStar.Pervasives.Lemma (ensures mult (mult p1 p2) p3 == mult p1 (mult p2 p3))
438
438
in
439
439
FStar.Classical.forall_intro right_unitality_helper;
440
- assert (Monoid.right_unitality_lemma Prims.prop u474 mult);
440
+ assert (Monoid.right_unitality_lemma Prims.prop u464 mult);
441
441
FStar.Classical.forall_intro left_unitality_helper;
442
- assert (Monoid.left_unitality_lemma Prims.prop u474 mult);
442
+ assert (Monoid.left_unitality_lemma Prims.prop u464 mult);
443
443
FStar.Classical.forall_intro_3 associativity_helper;
444
444
assert (Monoid.associativity_lemma Prims.prop mult);
445
- Monoid.intro_monoid Prims.prop u474 mult
445
+ Monoid.intro_monoid Prims.prop u464 mult
446
446
let bool_and_monoid =
447
447
let and_ b1 b2 = b1 && b2 in
448
448
Monoid.intro_monoid Prims.bool true and_
@@ -520,7 +520,7 @@ let _ =
520
520
Monoid.intro_monoid_morphism Monoid.neg Monoid.disjunction_monoid Monoid.conjunction_monoid
521
521
let mult_act_lemma m a mult act =
522
522
forall (x: m) (x': m) (y: a). act (mult x x') y == act x (act x' y)
523
- let unit_act_lemma m a u478 act = forall (y: a). act u478 y == y
523
+ let unit_act_lemma m a u468 act = forall (y: a). act u468 y == y
524
524
unopteq
525
525
type left_action (mm: Monoid.monoid m) (a: Type) =
526
526
| LAct :
0 commit comments