tamarin-prover-theory-0.8.5.0: Term manipulation library for the tamarin prover.

PortabilityGHC only
MaintainerSimon Meier <iridcode@gmail.com>
Safe HaskellNone

Theory.Constraint.Solver.Types

Contents

Description

Common types for our constraint solver. They must be declared jointly because there is a recursive dependency between goals, proof contexts, and case distinctions.

Synopsis

Proof context

data ProofContext Source

A proof context contains the globally fresh facts, classified rewrite rules and the corresponding precomputed premise case distinction theorems.

Classified rules

emptyClassifiedRules :: ClassifiedRulesSource

The empty proof rule set.

crConstruct :: forall arr. Arrow arr => Lens arr ClassifiedRules [RuleAC]Source

crDestruct :: forall arr. Arrow arr => Lens arr ClassifiedRules [RuleAC]Source

crProtocol :: forall arr. Arrow arr => Lens arr ClassifiedRules [RuleAC]Source

joinAllRules :: ClassifiedRules -> [RuleAC]Source

joinAllRules rules computes the union of all rules classified in rules.

nonSilentRules :: ClassifiedRules -> [RuleAC]Source

Extract all non-silent rules.

Precomputed case distinctions.

cdGoal :: forall arr. Arrow arr => Lens arr CaseDistinction GoalSource

cdCases :: forall arr. Arrow arr => Lens arr CaseDistinction (Disj ([String], System))Source

prettyCaseDistinction :: HighlightDocument d => CaseDistinction -> dSource

Pretty print a case distinction