23 sig |
23 sig |
24 val conjI: thm |
24 val conjI: thm |
25 val ccontr: thm (* (~ P ==> False) ==> P *) |
25 val ccontr: thm (* (~ P ==> False) ==> P *) |
26 val neqE: thm (* [| m ~= n; m < n ==> P; n < m ==> P |] ==> P *) |
26 val neqE: thm (* [| m ~= n; m < n ==> P; n < m ==> P |] ==> P *) |
27 val notI: thm (* (P ==> False) ==> ~ P *) |
27 val notI: thm (* (P ==> False) ==> ~ P *) |
|
28 val not_lessD: thm (* ~(m < n) ==> n <= m *) |
28 val sym: thm (* x = y ==> y = x *) |
29 val sym: thm (* x = y ==> y = x *) |
29 val mk_Eq: thm -> thm |
30 val mk_Eq: thm -> thm |
30 val mk_Trueprop: term -> term |
31 val mk_Trueprop: term -> term |
31 val neg_prop: term -> term |
32 val neg_prop: term -> term |
32 val is_False: thm -> bool |
33 val is_False: thm -> bool |
45 sig |
46 sig |
46 val add_mono_thms: thm list |
47 val add_mono_thms: thm list |
47 (* [| i rel1 j; m rel2 n |] ==> i + m rel3 j + n *) |
48 (* [| i rel1 j; m rel2 n |] ==> i + m rel3 j + n *) |
48 val lessD: thm (* m < n ==> Suc m <= n *) |
49 val lessD: thm (* m < n ==> Suc m <= n *) |
49 val not_leD: thm (* ~(m <= n) ==> Suc n <= m *) |
50 val not_leD: thm (* ~(m <= n) ==> Suc n <= m *) |
50 val not_lessD: thm (* ~(m < n) ==> n < m *) |
|
51 val decomp: term -> |
51 val decomp: term -> |
52 ((term * int)list * int * string * (term * int)list * int)option |
52 ((term * int)list * int * string * (term * int)list * int)option |
53 val simp: thm -> thm |
53 val simp: thm -> thm |
54 val is_nat: typ list * term -> bool |
54 val is_nat: typ list * term -> bool |
55 val mk_nat_thm: Sign.sg -> term -> thm |
55 val mk_nat_thm: Sign.sg -> term -> thm |
287 val just = Asm k |
287 val just = Asm k |
288 in case rel of |
288 in case rel of |
289 "<=" => Some(Lineq(c,Le,diff,just)) |
289 "<=" => Some(Lineq(c,Le,diff,just)) |
290 | "~<=" => Some(Lineq(1-c,Le,map (op ~) diff,Fwd(just,LA_Data.not_leD))) |
290 | "~<=" => Some(Lineq(1-c,Le,map (op ~) diff,Fwd(just,LA_Data.not_leD))) |
291 | "<" => Some(Lineq(c+1,Le,diff,Fwd(just,LA_Data.lessD))) |
291 | "<" => Some(Lineq(c+1,Le,diff,Fwd(just,LA_Data.lessD))) |
292 | "~<" => Some(Lineq(~c,Le,map (op~) diff,Fwd(just,LA_Data.not_lessD))) |
292 | "~<" => Some(Lineq(~c,Le,map (op~) diff,Fwd(just,LA_Logic.not_lessD))) |
293 | "=" => Some(Lineq(c,Eq,diff,just)) |
293 | "=" => Some(Lineq(c,Eq,diff,just)) |
294 | "~=" => None |
294 | "~=" => None |
295 | _ => sys_error("mklineq" ^ rel) |
295 | _ => sys_error("mklineq" ^ rel) |
296 end |
296 end |
297 end; |
297 end; |