Abstract
This article provides various unification utilities for Isabelle/ML, most prominently:
- First-order and higher-order pattern E-unification and E-matching. While unifiers in Isabelle/ML only consider the $\alpha\beta\eta$-equational theory of the $\lambda$-calculus, unifiers in this article may take an extra background theory, in the form of an equational prover, into account. For example, the unification problem $n + 1 \equiv {}?m + Suc\; 0$ may be solved by providing a prover for the background theory $\forall n.\ n + 1 \equiv n + Suc\; 0$.
- Tactics, methods, and attributes with adjustable unifiers (e.g.\ resolution, fact, assumption, OF).
- A generalisation of unification hints. Unification hints are a flexible extension for unifiers. Among other things, they can be used for reflective tactics, to provide canonical unification instances, or to simply strengthen the background theory of a unifier in a controlled manner.
- Simplifier integration for e-unifiers.
- Practical combinations of unification algorithms, e.g. a combination of first-order and higher-order pattern unification.
- A hierarchical logger for Isabelle/ML, including per logger configurations with log levels, output channels, message filters.
License
Topics
Session ML_Unification
- ML_Code_Utils
- ML_Attributes
- ML_Logger
- Setup_Result_Commands
- ML_Logger_Examples
- ML_Attribute_Utils
- ML_Conversion_Utils
- ML_Parsing_Utils
- ML_Functor_Instances
- ML_General_Utils
- ML_Generic_Data_Utils
- ML_Method_Utils
- ML_Priorities
- ML_Normalisations
- ML_Binders
- ML_Term_Utils
- ML_Theorem_Utils
- ML_Unification_Base
- ML_Tactic_Utils
- ML_Utils
- ML_Unifiers_Base
- Simps_To
- ML_Unifiers
- ML_Unification_Parsers
- Unify_Assumption_Tactic_Base
- Unify_Assumption_Tactic
- Unify_Resolve_Tactics_Base
- Unify_Resolve_Tactics
- Unify_Fact_Tactic_Base
- Unify_Fact_Tactic
- Unification_Tactics
- Unification_Attributes_Base
- Unification_Attributes
- ML_Term_Index
- ML_Unification_Hints_Base
- ML_Unification_Hints
- ML_Unification_HOL_Setup
- E_Unification_Examples
- Unification_Hints_Reification_Examples
- ML_Unification_Tests_Base
- First_Order_ML_Unification_Tests
- Higher_Order_Pattern_ML_Unification_Tests
- Higher_Order_ML_Unification_Tests
- ML_Unification_Tests