equal
deleted
inserted
replaced
38 val instantiate : |
38 val instantiate : |
39 (indexname * ctyp) list * (cterm * cterm) list -> thm -> thm |
39 (indexname * ctyp) list * (cterm * cterm) list -> thm -> thm |
40 val zero_var_indexes : thm -> thm |
40 val zero_var_indexes : thm -> thm |
41 val standard : thm -> thm |
41 val standard : thm -> thm |
42 val rotate_prems : int -> thm -> thm |
42 val rotate_prems : int -> thm -> thm |
|
43 val rearrange_prems : int list -> thm -> thm |
43 val assume_ax : theory -> string -> thm |
44 val assume_ax : theory -> string -> thm |
44 val RSN : thm * (int * thm) -> thm |
45 val RSN : thm * (int * thm) -> thm |
45 val RS : thm * thm -> thm |
46 val RS : thm * thm -> thm |
46 val RLN : thm list * (int * thm list) -> thm list |
47 val RLN : thm list * (int * thm list) -> thm list |
47 val RL : thm list * thm list -> thm list |
48 val RL : thm list * thm list -> thm list |
365 |
366 |
366 |
367 |
367 (*Rotates a rule's premises to the left by k*) |
368 (*Rotates a rule's premises to the left by k*) |
368 val rotate_prems = permute_prems 0; |
369 val rotate_prems = permute_prems 0; |
369 |
370 |
|
371 (* permute prems, where the i-th position in the argument list (counting from 0) |
|
372 gives the position within the original thm to be transferred to position i. |
|
373 Any remaining trailing positions are left unchanged. *) |
|
374 val rearrange_prems = let |
|
375 fun rearr new [] thm = thm |
|
376 | rearr new (p::ps) thm = rearr (new+1) |
|
377 (map (fn q => if new<=q andalso q<p then q+1 else q) ps) |
|
378 (permute_prems (new+1) (new-p) (permute_prems new (p-new) thm)) |
|
379 in rearr 0 end; |
370 |
380 |
371 (*Assume a new formula, read following the same conventions as axioms. |
381 (*Assume a new formula, read following the same conventions as axioms. |
372 Generalizes over Free variables, |
382 Generalizes over Free variables, |
373 creates the assumption, and then strips quantifiers. |
383 creates the assumption, and then strips quantifiers. |
374 Example is [| ALL x:?A. ?P(x) |] ==> [| ?P(?a) |] |
384 Example is [| ALL x:?A. ?P(x) |] ==> [| ?P(?a) |] |