(only non hidden objects are presented)
| THM | decidable_iff_exists_bool_function | |
| THM | decidable_iff_exists_bool_function_2 | |
| ML | decidable_to_bool_constructor | % caldwell - 27 March 1994 %
% This file contains the ideas for ML code to
construct a boolean equality for a type <T> by using the
extract of a theorem "decidable__T". Extraction was not
working in Nuprl 4.0 and the file has not been brought
up to date with release 4.1
%
%
let mk_bool_from_decidable_prop (t :tok) =
let name = (tok_to_string t) in
let concat = concatenate_strings in
let type = (mk_term (t,[]) []) in
let f_name = (t ^ `_2`) in
let f_name_str = (tok_to_string f_name) in
let bool = (mk_term (`bool`, []) []) in
create_object
(f_name ^ `_df`)
"disp"
(concat ["after decidable__" name]);
string_to_object_body
(concat [name; " |
| THM | sq_stable_functionality_wrt_or | |
| THM | sq_stable__or | |
| THM | decidable_functionality_wrt_iff | |
| THM | decidable__true | Dec(True) |
| THM | decidable__equal_nil | |
| THM | demorgan | |
| THM | demorgan1 | |
| THM | demorgan2 | |
| THM | contrapositive | |
| THM | pair_functionality_wrt_equal | |
| DISP | equivalence_df | {<T:type:L> |
| ABS | equivalence | {T |
| THM | equivalence_wf | |
| THM | equivalence_inc | |
| THM | discrete_equality_inc_equivalence | |
| THM | equivalence_type | |
| THM | equivalence_properties | |
| THM | equivalence_symmetric | |
| ML | equiv_tac | let is_equivalence_term t = (opid_of_term t) = `equivalence` ;; let Equivalence i p = (let T = type_of_hyp i p in let i = get_pos_hyp_num i p in if is_equivalence_term T then let name = mk_var_term (var_of_hyp i p) in let type = hd (subterms_of_term T) in InstLemma `equivalence_properties` [type;name] THENA Auto THEN RepeatFor 3 (D (-1) THEN CopyToHyp (i + 1) (-2) THEN Thin (-2)) THEN CopyToHyp (i + 1) (-1) THEN Thin (-1) else failwith `Equivalence: hyp is not an equivalence term.` )p ;; let EquivT i p = (let T = type_of_hyp i p in let i = get_pos_hyp_num i p in if is_equivalence_term T then let name = mk_var_term (var_of_hyp i p) in let type = hd (subterms_of_term T) in InstLemma `equivalence_type` [type;name] THENA Auto THEN CopyToHyp (i + 1) (-1) THEN Thin (-1) else failwith `EquivT: hyp is not an equivalence term.` )p ;; |
| THM | equivalence_bool_function | |
| THM | equivalence_reflexive | |
| THM | discrete_equality_is_equivalence | |
| THM | equivalence_weakening_lemma | |
| THM | not_equivalence_implies_not_discrete_eq | |
| THM | decidable__spread | |
| THM | not_not_rw |