Instances For
The predicate symbols of a FactSet are the predicate symbols from all facts.
Instances For
The terms of a FactSet are the terms from all facts.
Instances For
The function symbols of a FactSet are the function symbols from all facts.
Instances For
A FactSet is function free if all of its facts are.
Equations
- fs.isFunctionFree = ∀ (f : Fact sig), f ∈ fs → f.isFunctionFree
Instances For
When converting a list to a FactSet, the terms remain the same.
The a FactSet is a subset of another, then their terms share this subset relation.
The terms of the union of two FactSets are the union of the terms of both sets.
If a FactSet is finite, so are its terms.
When converting a list to a FactSet, the constants remain the same.
A constant occurs in the fact set iff it occurs as a constant in one of its terms.
The a FactSet is a subset of another, then their constants share this subset relation.
The constants of the union of two FactSets are the union of the constants of both sets.
If a FactSet is finite, so are its constants.
A FactSet is finite if both its predicates and terms are. This holds since the fact set must be a subset of all facts that can possibly be constructed using the prediactes and terms available. This overapproximation is easily shown to be finite.
For a list of terms in a given FactSet, we can find a list of facts in the fact set such that all the terms from the list occur in the list of facts.