File tree 3 files changed +22
-16
lines changed
3 files changed +22
-16
lines changed Original file line number Diff line number Diff line change @@ -1021,17 +1021,23 @@ beta_reduce_term (TypedTerm schema t) = do
1021
1021
t' <- io $ betaNormalize sc t
1022
1022
return (TypedTerm schema t')
1023
1023
1024
- addsimp :: Theorem -> Simpset -> Simpset
1025
- addsimp (Theorem (Prop t) _stats) ss = addRule (ruleOfProp t) ss
1026
-
1027
- addsimp' :: Term -> Simpset -> Simpset
1028
- addsimp' t ss = addRule (ruleOfProp t) ss
1029
-
1030
- addsimps :: [Theorem ] -> Simpset -> Simpset
1031
- addsimps thms ss = foldr addsimp ss thms
1032
-
1033
- addsimps' :: [Term ] -> Simpset -> Simpset
1034
- addsimps' ts ss = foldr (\ t -> addRule (ruleOfProp t)) ss ts
1024
+ addsimp :: Theorem -> Simpset -> TopLevel Simpset
1025
+ addsimp (Theorem (Prop t) _stats) ss =
1026
+ case ruleOfProp t of
1027
+ Nothing -> fail " addsimp: theorem not an equation"
1028
+ Just rule -> pure (addRule rule ss)
1029
+
1030
+ addsimp' :: Term -> Simpset -> TopLevel Simpset
1031
+ addsimp' t ss =
1032
+ case ruleOfProp t of
1033
+ Nothing -> fail " addsimp': theorem not an equation"
1034
+ Just rule -> pure (addRule rule ss)
1035
+
1036
+ addsimps :: [Theorem ] -> Simpset -> TopLevel Simpset
1037
+ addsimps thms ss = foldM (flip addsimp) ss thms
1038
+
1039
+ addsimps' :: [Term ] -> Simpset -> TopLevel Simpset
1040
+ addsimps' ts ss = foldM (flip addsimp') ss ts
1035
1041
1036
1042
print_type :: Term -> TopLevel ()
1037
1043
print_type t = do
Original file line number Diff line number Diff line change @@ -1427,22 +1427,22 @@ primitives = Map.fromList
1427
1427
]
1428
1428
1429
1429
, prim " addsimp" " Theorem -> Simpset -> Simpset"
1430
- (pureVal addsimp)
1430
+ (funVal2 addsimp)
1431
1431
Current
1432
1432
[ " Add a proved equality theorem to a given simplification rule set." ]
1433
1433
1434
1434
, prim " addsimp'" " Term -> Simpset -> Simpset"
1435
- (pureVal addsimp')
1435
+ (funVal2 addsimp')
1436
1436
Current
1437
1437
[ " Add an arbitrary equality term to a given simplification rule set." ]
1438
1438
1439
1439
, prim " addsimps" " [Theorem] -> Simpset -> Simpset"
1440
- (pureVal addsimps)
1440
+ (funVal2 addsimps)
1441
1441
Current
1442
1442
[ " Add proved equality theorems to a given simplification rule set." ]
1443
1443
1444
1444
, prim " addsimps'" " [Term] -> Simpset -> Simpset"
1445
- (pureVal addsimps')
1445
+ (funVal2 addsimps')
1446
1446
Current
1447
1447
[ " Add arbitrary equality terms to a given simplification rule set." ]
1448
1448
You can’t perform that action at this time.
0 commit comments