public final class GenericSortInstantiations
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
private static class  | 
GenericSortInstantiations.FailException  | 
| Modifier and Type | Field and Description | 
|---|---|
static GenericSortInstantiations | 
EMPTY_INSTANTIATIONS  | 
private static GenericSortInstantiations.FailException | 
FAIL_EXCEPTION  | 
private ImmutableMap<GenericSort,Sort> | 
insts  | 
private static GenericSortException | 
UNSATISFIABLE_SORT_CONSTRAINTS
exception thrown if no solution exists 
 | 
| Modifier | Constructor and Description | 
|---|---|
private  | 
GenericSortInstantiations(ImmutableMap<GenericSort,Sort> p_insts)  | 
| Modifier and Type | Method and Description | 
|---|---|
private static ImmutableList<Sort> | 
addChosenInstantiations(ImmutableMap<GenericSort,Sort> p_curRes,
                       GenericSort p_gs,
                       ImmutableList<Sort> p_subsorts)  | 
private static void | 
addSortsToSet(java.util.Set<Sort> p_set,
             ImmutableSet<Sort> p_sorts)  | 
java.lang.Boolean | 
checkCondition(GenericSortCondition p_condition)  | 
java.lang.Boolean | 
checkSorts(SchemaVariable sv,
          InstantiationEntry<?> p_entry)  | 
private static ImmutableList<Sort> | 
chooseResults(GenericSort p_gs,
             ImmutableList<GenericSortCondition> p_idConditions)  | 
private static Sort | 
condSort(java.util.Iterator<GenericSortCondition> itC)  | 
static GenericSortInstantiations | 
create(ImmutableList<GenericSort> p_sorts,
      ImmutableList<GenericSortCondition> p_conditions,
      Services services)
Create an object that holds instantiations of the generic sorts
 "p_sorts" satisfying the conditions "p_conditions" 
 | 
static GenericSortInstantiations | 
create(java.util.Iterator<ImmutableMapEntry<SchemaVariable,InstantiationEntry<?>>> p_instantiations,
      ImmutableList<GenericSortCondition> p_conditions,
      Services services)
Create an object that solves the conditions given by the
 instantiation iterator, i.e. instantiations of the generic
 sorts used within "p_instantiations" are sought for which are
 compatible with the instantiations of the SVs 
 | 
private static ImmutableMap<GenericSort,Sort> | 
descend(ImmutableList<GenericSort> p_remainingSorts,
       ImmutableMap<GenericSort,Sort> p_curRes,
       ImmutableList<GenericSortCondition> p_conditions,
       ImmutableList<GenericSort> p_pushedBack,
       GenericSort p_gs,
       ImmutableList<Sort> p_subsorts,
       ImmutableList<Sort> p_chosenList,
       Services services)  | 
private static ImmutableList<Sort> | 
findMinimalElements(java.util.Set<Sort> p_inside)
Find all minimal elements of the given set  
p_inside | 
ImmutableMap<GenericSort,Sort> | 
getAllInstantiations()
ONLY FOR JUNIT TESTS 
 | 
Sort | 
getInstantiation(GenericSort p_gs)  | 
private static Sort | 
getOneOf(java.util.Set<Sort> p_set)  | 
Sort | 
getRealSort(SchemaVariable p_sv,
           TermServices services)  | 
Sort | 
getRealSort(Sort p_s,
           TermServices services)  | 
boolean | 
isEmpty()  | 
boolean | 
isInstantiated(GenericSort p_gs)  | 
private static boolean | 
isPossibleInstantiation(GenericSort p_gs,
                       Sort p_s,
                       ImmutableMap<GenericSort,Sort> p_curRes)  | 
private static boolean | 
isSupersortOf(Sort p_s,
             ImmutableList<Sort> p_subsorts)  | 
private static ImmutableList<Sort> | 
minimalSupersorts(ImmutableList<Sort> p_sorts,
                 Services services)
Find all minimal common supersorts of "p_itSorts"
 PRECONDITION: ! 
 | 
private static ImmutableMap<GenericSort,Sort> | 
solve(ImmutableList<GenericSort> p_sorts,
     ImmutableList<GenericSortCondition> p_conditions,
     Services services)
Really solve the conditions given 
 | 
private static ImmutableMap<GenericSort,Sort> | 
solveForcedInst(ImmutableList<GenericSort> p_remainingSorts,
               ImmutableMap<GenericSort,Sort> p_curRes,
               ImmutableList<GenericSortCondition> p_conditions,
               Services services)
Method which is called by solveHelp and tries to instantiate
 the generic sorts for which GSCForceInstantiation-conditions
 (with "maximum" parameter) are contained within "p_conditions" 
 | 
private static ImmutableMap<GenericSort,Sort> | 
solveForcedInstHelp(ImmutableList<GenericSort> p_remainingSorts,
                   ImmutableMap<GenericSort,Sort> p_curRes,
                   Services services)
Method which is called recursively and tries to instantiate one
 (the first) generic sort from the "p_remainingSorts"-list 
 | 
private static ImmutableMap<GenericSort,Sort> | 
solveHelp(ImmutableList<GenericSort> p_remainingSorts,
         ImmutableMap<GenericSort,Sort> p_curRes,
         ImmutableList<GenericSortCondition> p_conditions,
         ImmutableList<GenericSort> p_pushedBack,
         Services services)
Method which is called recursively and tries to instantiate one
 (the first) generic sort from the "p_remainingSorts"-list 
 | 
ImmutableList<GenericSortCondition> | 
toConditions()
Create a list of conditions establishing the instantiations
 stored by this object (not saying anything about further
 generic sorts) 
 | 
private static ImmutableList<Sort> | 
toList(ImmutableSet<Sort> p_set)  | 
private static ImmutableList<GenericSort> | 
topology(ImmutableList<GenericSort> p_sorts)
Sort generic sorts topologically, i.e. if sort A is a supersort
 of sort B, then A appears behind B within the return value 
 | 
java.lang.String | 
toString()  | 
public static final GenericSortInstantiations EMPTY_INSTANTIATIONS
private final ImmutableMap<GenericSort,Sort> insts
private static final GenericSortException UNSATISFIABLE_SORT_CONSTRAINTS
private static final GenericSortInstantiations.FailException FAIL_EXCEPTION
private GenericSortInstantiations(ImmutableMap<GenericSort,Sort> p_insts)
public static GenericSortInstantiations create(java.util.Iterator<ImmutableMapEntry<SchemaVariable,InstantiationEntry<?>>> p_instantiations, ImmutableList<GenericSortCondition> p_conditions, Services services)
p_instantiations - list of SV instantiationsp_conditions - additional conditions for sort instantiationsGenericSortException - iff the conditions could not be
 solvedpublic static GenericSortInstantiations create(ImmutableList<GenericSort> p_sorts, ImmutableList<GenericSortCondition> p_conditions, Services services)
p_sorts - generic sorts to instantiatep_conditions - conditions the instantiations have to
 satisfyGenericSortException - if no instantiations has been
 foundpublic java.lang.Boolean checkSorts(SchemaVariable sv, InstantiationEntry<?> p_entry)
public java.lang.Boolean checkCondition(GenericSortCondition p_condition)
public boolean isInstantiated(GenericSort p_gs)
public Sort getInstantiation(GenericSort p_gs)
public boolean isEmpty()
public ImmutableList<GenericSortCondition> toConditions()
public Sort getRealSort(SchemaVariable p_sv, TermServices services)
services - the Services classGenericSortException - iff p_s is a generic sort which is
 not yet instantiatedpublic Sort getRealSort(Sort p_s, TermServices services)
private static ImmutableMap<GenericSort,Sort> solve(ImmutableList<GenericSort> p_sorts, ImmutableList<GenericSortCondition> p_conditions, Services services)
p_sorts - generic sorts that must be instantiatedp_conditions - conditions to be solvedGenericSortException - no solution could be foundprivate static ImmutableMap<GenericSort,Sort> solveHelp(ImmutableList<GenericSort> p_remainingSorts, ImmutableMap<GenericSort,Sort> p_curRes, ImmutableList<GenericSortCondition> p_conditions, ImmutableList<GenericSort> p_pushedBack, Services services)
p_remainingSorts - generic sorts which needs to be
 instantiated (topologically sorted)p_curRes - instantiations so farp_conditions - conditions (see above)private static ImmutableMap<GenericSort,Sort> descend(ImmutableList<GenericSort> p_remainingSorts, ImmutableMap<GenericSort,Sort> p_curRes, ImmutableList<GenericSortCondition> p_conditions, ImmutableList<GenericSort> p_pushedBack, GenericSort p_gs, ImmutableList<Sort> p_subsorts, ImmutableList<Sort> p_chosenList, Services services)
private static ImmutableList<Sort> chooseResults(GenericSort p_gs, ImmutableList<GenericSortCondition> p_idConditions) throws GenericSortInstantiations.FailException
private static ImmutableList<Sort> toList(ImmutableSet<Sort> p_set)
private static Sort condSort(java.util.Iterator<GenericSortCondition> itC)
private static ImmutableList<Sort> addChosenInstantiations(ImmutableMap<GenericSort,Sort> p_curRes, GenericSort p_gs, ImmutableList<Sort> p_subsorts)
private static ImmutableMap<GenericSort,Sort> solveForcedInst(ImmutableList<GenericSort> p_remainingSorts, ImmutableMap<GenericSort,Sort> p_curRes, ImmutableList<GenericSortCondition> p_conditions, Services services)
p_curRes - instantiations so farp_conditions - conditions (see above)private static ImmutableMap<GenericSort,Sort> solveForcedInstHelp(ImmutableList<GenericSort> p_remainingSorts, ImmutableMap<GenericSort,Sort> p_curRes, Services services)
p_remainingSorts - generic sorts which needs to be
 instantiated (topologically sorted, starting with the most
 general sort)p_curRes - instantiations so farprivate static ImmutableList<GenericSort> topology(ImmutableList<GenericSort> p_sorts)
private static ImmutableList<Sort> minimalSupersorts(ImmutableList<Sort> p_sorts, Services services)
private static ImmutableList<Sort> findMinimalElements(java.util.Set<Sort> p_inside)
p_insideprivate static void addSortsToSet(java.util.Set<Sort> p_set, ImmutableSet<Sort> p_sorts)
private static boolean isSupersortOf(Sort p_s, ImmutableList<Sort> p_subsorts)
private static boolean isPossibleInstantiation(GenericSort p_gs, Sort p_s, ImmutableMap<GenericSort,Sort> p_curRes)
public java.lang.String toString()
toString in class java.lang.Objectpublic ImmutableMap<GenericSort,Sort> getAllInstantiations()