| Modifier and Type | Interface and Description |
|---|---|
static interface |
Formula.ArithmeticEquation |
static interface |
Formula.Equation |
| Modifier and Type | Class and Description |
|---|---|
static class |
Formula.ArithmeticEquality |
static class |
Formula.Conjunct |
static class |
Formula.Disjunct |
static class |
Formula.Equality |
static class |
Formula.Inequality |
static class |
Formula.Invoke |
static class |
Formula.Is |
static class |
Formula.Quantifier |
static class |
Formula.Truth |
| Modifier and Type | Method and Description |
|---|---|
Formula |
Proof.State.allocate(Formula f)
Ensure a given formula is properly allocated into this state.
|
Formula |
Formula.clone(wybs.lang.SyntacticItem[] children) |
Formula |
Proof.Delta.Set.get(int ith)
Get the ith truth in this set
|
Formula |
Formula.Conjunct.get(int i) |
Formula |
Formula.Disjunct.get(int i) |
Formula[] |
Formula.Conjunct.getAll() |
Formula[] |
Formula.Disjunct.getAll() |
Formula |
Formula.Quantifier.getBody() |
| Modifier and Type | Method and Description |
|---|---|
List<Formula> |
Proof.State.getDependencies()
Get the formulae on which this step depends
|
| Modifier and Type | Method and Description |
|---|---|
Proof.Delta |
Proof.Delta.add(Formula truth)
Add a new formula to this delta
|
Proof.Delta.Set |
Proof.Delta.Set.add(Formula truth)
Add a truth to this set.
|
Formula |
Proof.State.allocate(Formula f)
Ensure a given formula is properly allocated into this state.
|
boolean |
Proof.Delta.Set.contains(Formula truth)
Check whether the given formula is contained within this set or
not.
|
Proof.State |
Proof.State.infer(Proof.Rule rule,
Formula truth,
Formula... dependencies)
Infer a new fact from one or more existing facts.
|
Proof.State |
Proof.State.infer(Proof.Rule rule,
Formula truth,
Formula... dependencies)
Infer a new fact from one or more existing facts.
|
boolean |
Proof.Delta.isAddition(Formula truth)
Check whether or not a given formula is in the additions set
|
boolean |
Proof.State.isKnown(Formula truth)
Determine whether a truth is already known or not.
|
boolean |
Proof.Delta.isRemoval(Formula truth)
Check whether or not a given formula is in the removals set
|
Proof.State |
Proof.State.refine(Proof.Rule rule,
WyalFile.VariableDeclaration variable,
WyalFile.Type type,
Formula... dependencies)
Refine the type of a given variable in this state.
|
Proof.Delta |
Proof.Delta.remove(Formula truth)
Remove a truth from this delta (e.g.
|
Proof.Delta.Set |
Proof.Delta.Set.remove(Formula truth)
Remove a formula from this set
|
Proof.State |
Proof.State.subsume(Proof.Rule rule,
Formula truth,
Formula replacement,
Formula... dependencies)
Subsume a given truth by a replacement.
|
Proof.State |
Proof.State.subsume(Proof.Rule rule,
Formula truth,
Formula replacement,
Formula... dependencies)
Subsume a given truth by a replacement.
|
| Constructor and Description |
|---|
Conjunct(Formula... operands) |
Disjunct(Formula... operands) |
Quantifier(boolean sign,
wybs.util.AbstractCompilationUnit.Tuple<WyalFile.VariableDeclaration> parameters,
Formula body) |
Quantifier(boolean sign,
WyalFile.VariableDeclaration[] parameters,
Formula body) |
Quantifier(boolean sign,
WyalFile.VariableDeclaration parameter,
Formula body) |
| Modifier and Type | Method and Description |
|---|---|
Formula |
CongruenceClosure.Assignment.getDependency() |
<T> Formula[] |
Simplification.inlineNestedArray(Formula[] parent,
int index,
Formula[] child) |
Formula |
Simplification.simplify(Formula f)
Recursively simplify a given formula by applying the "standard"
simplifications for each kind.
|
Formula[] |
Simplification.simplify(Formula[] children) |
Formula |
Simplification.simplifyArithmeticEquality(Formula.ArithmeticEquality eq)
Simplify an arithmetic equality by canceling, evaluating and/or
balancing:
Canceling is the process of removing commons terms from both
sides.
|
Formula |
Simplification.simplifyConjunct(Formula.Conjunct conjunct) |
Formula |
Simplification.simplifyDisjunct(Formula.Disjunct disjunct) |
Formula |
Simplification.simplifyEquality(Formula.Equality eq)
Simplify a non-arithmetic equality by attempting to evaluate it.
|
Formula |
Simplification.simplifyInequality(Formula.Inequality ieq)
Simplify an inequality by canceling, evaluating and/or balancing:
Canceling is the process of removing commons terms from both
sides.
|
Formula |
Simplification.simplifyInvoke(Formula.Invoke ivk) |
Formula |
Simplification.simplifyIs(Formula.Is e) |
Formula |
Simplification.simplifyQuantifier(Formula.Quantifier quantifier)
Simplify a quantified formula.
|
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
CongruenceClosure.apply(Proof.Delta.Set existingTruths,
Proof.State head,
Formula newTruth) |
Proof.State |
Simplification.apply(Proof.State head,
Formula truth) |
Proof.State |
EqualityCaseAnalysis.apply(Proof.State state,
Formula truth) |
wybs.lang.SyntacticItem |
CongruenceClosure.construct(Proof.Delta.Set existingTruths,
Proof.State head,
wybs.lang.SyntacticItem term,
Formula newTruth,
List<Formula> dependencies)
When generating an entirely new term within a given rule (i.e.
|
<T> Formula[] |
Simplification.inlineNestedArray(Formula[] parent,
int index,
Formula[] child) |
<T> Formula[] |
Simplification.inlineNestedArray(Formula[] parent,
int index,
Formula[] child) |
WyalFile.Expr |
CongruenceClosure.localConstruct(Proof.Delta.Set existingTruths,
Proof.State head,
WyalFile.Expr term,
Formula newTruth,
List<Formula> dependencies) |
Formula |
Simplification.simplify(Formula f)
Recursively simplify a given formula by applying the "standard"
simplifications for each kind.
|
Formula[] |
Simplification.simplify(Formula[] children) |
| Modifier and Type | Method and Description |
|---|---|
wybs.lang.SyntacticItem |
CongruenceClosure.construct(Proof.Delta.Set existingTruths,
Proof.State head,
wybs.lang.SyntacticItem term,
Formula newTruth,
List<Formula> dependencies)
When generating an entirely new term within a given rule (i.e.
|
WyalFile.Expr |
CongruenceClosure.localConstruct(Proof.Delta.Set existingTruths,
Proof.State head,
WyalFile.Expr term,
Formula newTruth,
List<Formula> dependencies) |
| Constructor and Description |
|---|
Assignment(WyalFile.Expr lhs,
WyalFile.Expr rhs,
Formula dep) |
| Modifier and Type | Method and Description |
|---|---|
Formula |
InequalityIntroduction.closeOver(Formula.Inequality ith,
Formula.Inequality jth)
Close over two inequalities.
|
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
InequalityIntroduction.apply(Proof.Delta.Set existingTruths,
Proof.State state,
Formula newTruth) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
ArrayIndexAxiom.apply(Proof.Delta.Set existingTruths,
Proof.State head,
Formula truth) |
Proof.State |
ArrayLengthAxiom.apply(Proof.State state,
Formula truth) |
Proof.State |
ArrayIndexCaseAnalysis.apply(Proof.State state,
Formula truth) |
Proof.State |
ArrayEqualityCaseAnalysis.apply(Proof.State state,
Formula truth) |
Proof.State |
ArrayIndexAxiom.attemptInstantiation(Formula source,
List<WyalFile.Expr.Operator> matches,
Formula target,
Proof.State state) |
Proof.State |
ArrayIndexAxiom.attemptInstantiationByArrayAccess(Formula truth,
Proof.Delta.Set existingTruths,
Proof.State state) |
Proof.State |
ArrayIndexAxiom.attemptInstantiationByEquation(Formula truth,
Proof.Delta.Set existingTruths,
Proof.State state) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
MacroExpansion.apply(Proof.State state,
Formula truth) |
Proof.State |
FunctionCallAxiom.apply(Proof.State state,
Formula truth) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State[] |
OrElimination.apply(Proof.State state,
Formula truth) |
Proof.State |
AndElimination.apply(Proof.State head,
Formula truth) |
| Modifier and Type | Method and Description |
|---|---|
protected Formula |
ExistentialElimination.expandTypeInvariants(wybs.util.AbstractCompilationUnit.Tuple<WyalFile.VariableDeclaration> declarations,
TypeSystem types)
For a given sequence of variable declarations expand their type
invariants as appropriate.
|
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
ExhaustiveQuantifierInstantiation.apply(Proof.Delta.Set existingTruths,
Proof.State state,
Formula newTruth) |
Proof.State |
ExistentialElimination.apply(Proof.State head,
Formula truth) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
RecordEqualityCaseAnalysis.apply(Proof.State state,
Formula truth) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
TypeTestNormalisation.apply(Proof.Delta.Set existingTruths,
Proof.State head,
Formula newTruth) |
Proof.State |
TypeTestClosure.apply(Proof.Delta.Set existingTruths,
Proof.State head,
Formula newTruth) |
| Modifier and Type | Field and Description |
|---|---|
protected List<Formula> |
AbstractProof.AbstractState.dependencies |
| Modifier and Type | Method and Description |
|---|---|
Formula |
DeltaProof.State.allocate(Formula truth) |
static Formula |
Formulae.and(Formula lhs,
Formula rhs) |
Formula |
FastDelta.Set.get(int ith) |
static Formula |
Formulae.implies(Formula lhs,
Formula rhs) |
static Formula |
Formulae.invert(Formula f)
Logically invert a given formula.
|
static Formula |
Formulae.or(Formula lhs,
Formula rhs) |
static Formula |
Formulae.toFormula(WyalFile.Stmt stmt,
TypeSystem types)
Take a tree of statements and expressions, and return a formula.
|
static Formula[] |
Formulae.toFormulae(WyalFile.Stmt[] stmts,
TypeSystem types)
Convert an array of statements into an array of (equivalent) formulae.
|
| Modifier and Type | Method and Description |
|---|---|
List<Formula> |
AbstractProof.AbstractState.getDependencies() |
| Modifier and Type | Method and Description |
|---|---|
FastDelta |
FastDelta.add(Formula truth) |
FastDelta.Set |
FastDelta.Set.add(Formula truth) |
Formula |
DeltaProof.State.allocate(Formula truth) |
static Formula |
Formulae.and(Formula lhs,
Formula rhs) |
abstract Proof.State |
AbstractClosureRule.apply(Proof.Delta.Set existingTruths,
Proof.State head,
Formula truth) |
abstract Proof.State |
AbstractProofRule.apply(Proof.State head,
Formula truth) |
Proof.State |
AbstractClosureRule.apply(Proof.State head,
Formula truth) |
boolean |
FastDelta.Set.contains(Formula truth) |
static Formula |
Formulae.implies(Formula lhs,
Formula rhs) |
DeltaProof.State |
DeltaProof.State.infer(Proof.Rule rule,
Formula truth,
Formula... dependencies) |
DeltaProof.State |
DeltaProof.State.infer(Proof.Rule rule,
Formula truth,
Formula... dependencies) |
static Formula |
Formulae.invert(Formula f)
Logically invert a given formula.
|
boolean |
FastDelta.isAddition(Formula truth) |
boolean |
DeltaProof.State.isKnown(Formula truth)
Determine whether a given truth is known or not.
|
boolean |
FastDelta.isRemoval(Formula truth) |
static Formula |
Formulae.or(Formula lhs,
Formula rhs) |
Proof.State |
DeltaProof.State.refine(Proof.Rule rule,
WyalFile.VariableDeclaration variable,
WyalFile.Type type,
Formula... dependencies) |
FastDelta |
FastDelta.remove(Formula truth) |
FastDelta.Set |
FastDelta.Set.remove(Formula truth) |
DeltaProof.State |
DeltaProof.State.subsume(Proof.Rule rule,
Formula from,
Formula to,
Formula... deps)
Subume one formula with one or more formulae.
|
DeltaProof.State |
DeltaProof.State.subsume(Proof.Rule rule,
Formula from,
Formula to,
Formula... deps)
Subume one formula with one or more formulae.
|
| Constructor and Description |
|---|
AbstractState(AbstractProof<T> proof,
T parent,
Proof.Rule rule,
Formula... dependencies) |
DeltaProof(WyalFile.Declaration.Assert assertion,
wybs.lang.SyntacticHeap heap,
Formula axiom) |
Set(Formula f) |
State(DeltaProof proof,
Formula axiom) |
| Modifier and Type | Method and Description |
|---|---|
Formula |
TypeSystem.extractInvariant(WyalFile.Type type,
WyalFile.Expr root)
Extracting the invariant (if any) from a given type.
|
| Modifier and Type | Method and Description |
|---|---|
Formula |
TypeInvariantExtractor.extract(WyalFile.Type type,
WyalFile.Expr root) |
Formula |
TypeInvariantExtractor.extractTypeInvariantInner(WyalFile.Type type,
WyalFile.Expr root,
HashSet<WyalFile.Type> visited) |
Copyright © 2017. All rights reserved.