equal
deleted
inserted
replaced
168 (TrueI, |
168 (TrueI, |
169 Metis.Thm.axiom (Metis.LiteralSet.fromList (map m_arity_cls (conclLit :: premLits)))); |
169 Metis.Thm.axiom (Metis.LiteralSet.fromList (map m_arity_cls (conclLit :: premLits)))); |
170 |
170 |
171 (* CLASSREL CLAUSE *) |
171 (* CLASSREL CLAUSE *) |
172 |
172 |
173 fun m_classrel_cls (subclass, _) (superclass, _) = |
173 fun m_class_rel_cls (subclass, _) (superclass, _) = |
174 [metis_lit false subclass [Metis.Term.Var "T"], metis_lit true superclass [Metis.Term.Var "T"]]; |
174 [metis_lit false subclass [Metis.Term.Var "T"], metis_lit true superclass [Metis.Term.Var "T"]]; |
175 |
175 |
176 fun classrel_cls (ClassrelClause {subclass, superclass, ...}) = |
176 fun class_rel_cls (ClassRelClause {subclass, superclass, ...}) = |
177 (TrueI, Metis.Thm.axiom (Metis.LiteralSet.fromList (m_classrel_cls subclass superclass))); |
177 (TrueI, Metis.Thm.axiom (Metis.LiteralSet.fromList (m_class_rel_cls subclass superclass))); |
178 |
178 |
179 (* ------------------------------------------------------------------------- *) |
179 (* ------------------------------------------------------------------------- *) |
180 (* FOL to HOL (Metis to Isabelle) *) |
180 (* FOL to HOL (Metis to Isabelle) *) |
181 (* ------------------------------------------------------------------------- *) |
181 (* ------------------------------------------------------------------------- *) |
182 |
182 |
604 fun type_ext thy tms = |
604 fun type_ext thy tms = |
605 let val subs = tfree_classes_of_terms tms |
605 let val subs = tfree_classes_of_terms tms |
606 val supers = tvar_classes_of_terms tms |
606 val supers = tvar_classes_of_terms tms |
607 and tycons = type_consts_of_terms thy tms |
607 and tycons = type_consts_of_terms thy tms |
608 val (supers', arity_clauses) = make_arity_clauses thy tycons supers |
608 val (supers', arity_clauses) = make_arity_clauses thy tycons supers |
609 val classrel_clauses = make_classrel_clauses thy subs supers' |
609 val class_rel_clauses = make_class_rel_clauses thy subs supers' |
610 in map classrel_cls classrel_clauses @ map arity_cls arity_clauses |
610 in map class_rel_cls class_rel_clauses @ map arity_cls arity_clauses |
611 end; |
611 end; |
612 |
612 |
613 (* ------------------------------------------------------------------------- *) |
613 (* ------------------------------------------------------------------------- *) |
614 (* Logic maps manage the interface between HOL and first-order logic. *) |
614 (* Logic maps manage the interface between HOL and first-order logic. *) |
615 (* ------------------------------------------------------------------------- *) |
615 (* ------------------------------------------------------------------------- *) |