Documentation

EqCheckingAbstractInterpretation.Ready.Correctness

theorem EqCheckingAbstractInterpretation.Ready.concrete_of_gammaDRSAbsExact {Action : Type u} {Name : Type v} (ρ : DiffSysRS Action Name (RSObs Action)) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (o : RSObs Action) (hGamma : gammaDRSAbs (fun (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) => alphaCap rsObsCap (ρ p Q) c) p Q o) :
∃ (o' : RSObs Action), ρ p Q o' ∧ capLe (reqOfObs o') (reqOfObs o)

Any observation admitted by the exact concretization of an exact capability abstraction has a concrete witness whose required capability is no larger.

theorem EqCheckingAbstractInterpretation.Ready.concrete_of_DRS_gammaDRSAbsExact {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (ρ : DiffSysRS Action Name (RSObs Action)) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (o : RSObs Action) (hDRS : DRS env (gammaDRSAbs fun (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) => alphaCap rsObsCap (ρ p Q) c) p Q o) :
∃ (o' : RSObs Action), DRS env ρ p Q o' ∧ capLe (reqOfObs o') (reqOfObs o)

One DRS step over the exact concretization of an exact capability abstraction can be rebuilt as a concrete DRS step, possibly with smaller child observations at each positive branch occurrence.

theorem EqCheckingAbstractInterpretation.Ready.backwardComplete_abstractDRS {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (ρ : DiffSysRS Action Name (RSObs Action)) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) :
alphaCap rsObsCap (DRS env ρ p Q) c ↔ abstractDRS env (fun (p' : CCS.CCS Action Name) (Q' : ProcSet Action Name) (c' : Capability) => alphaCap rsObsCap (ρ p' Q') c') p Q c

Backward completeness (pointwise) of the capability abstraction for abstractDRS: αcap ∘ DRS = abstractDRS ∘ αcap.

theorem EqCheckingAbstractInterpretation.Ready.backwardComplete_abstractDRS_funext {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (ρ : DiffSysRS Action Name (RSObs Action)) :
(fun (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) => alphaCap rsObsCap (DRS env ρ p Q) c) = abstractDRS env fun (p' : CCS.CCS Action Name) (Q' : ProcSet Action Name) (c' : Capability) => alphaCap rsObsCap (ρ p' Q') c'

Function-extensional form of backwardComplete_abstractDRS.

theorem EqCheckingAbstractInterpretation.Ready.gammaDRSAbs_prefixpoint_of_abstract_prefixpoint {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (ρa : AbsSysRS Action Name) (hρa : AbstractDRSPrefixpoint env ρa) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (o : RSObs Action) :
DRS env (gammaDRSAbs ρa) p Q o → gammaDRSAbs ρa p Q o

Any abstract pre-fixpoint induces a concrete pre-fixpoint via gammaDRSAbs.

theorem EqCheckingAbstractInterpretation.Ready.concrete_of_gammaDRSAbsExactCanon {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (o : RSObs Action) (hGamma : gammaDRSAbs (fun (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) => alphaCap rsObsCap (lfpDRS env p Q) c) p Q o) :
∃ (o' : RSObs Action), lfpDRS env p Q o' ∧ capLe (reqOfObs o') (reqOfObs o)

Any observation admitted by the exact concretization of the canonical abstract lfp has a concrete lfpDRS witness whose required capability is no larger.

theorem EqCheckingAbstractInterpretation.Ready.concrete_of_DRS_gammaDRSAbsExactCanon {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (o : RSObs Action) (hDRS : DRS env (gammaDRSAbs fun (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) => alphaCap rsObsCap (lfpDRS env p Q) c) p Q o) :
∃ (o' : RSObs Action), DRS env (lfpDRS env) p Q o' ∧ capLe (reqOfObs o') (reqOfObs o)

One DRS step over the exact concretization of the canonical abstract lfp can be rebuilt as a concrete DRS step over lfpDRS, possibly with smaller child observations at each positive branch occurrence.

theorem EqCheckingAbstractInterpretation.Ready.lfpAbstractDRS_le_of_abstract_prefixpoint {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (ρa : AbsSysRS Action Name) (hρa : AbstractDRSPrefixpoint env ρa) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) (hLfp : lfpAbstractDRS env p Q c) :
upClosure (ρa p Q) c

lfpAbstractDRS lies below every abstract pre-fixpoint of abstractDRS.

The exact canonical abstraction induced by lfpDRS is a pre-fixpoint of abstractDRS.

theorem EqCheckingAbstractInterpretation.Ready.below_all_abstract_prefixpoints_iff_alphaCapRaw_lfpDRS {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability) :
(∀ (ρa : AbsSysRS Action Name), AbstractDRSPrefixpoint env ρa → upClosure (ρa p Q) c) ↔ alphaCapRaw rsObsCap (lfpDRS env p Q) c

The abstract lfp of abstractDRS coincides with the canonical exact abstraction of lfpDRS.

theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_rsObs_of_lfp {Action : Type u} {Name : Type v} (lfpConcrete : DiffSysRS Action Name (RSObs Action)) (lfpAbs : AbsSysRS Action Name) (hLfp : ∀ (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability), lfpAbs p Q c ↔ alphaCapRaw rsObsCap (lfpConcrete p Q) c) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
abstractFailsAt lfpAbs N p Q ↔ notPreorderAt rsObsCap lfpConcrete N p Q

Concrete instantiation of the unified lfp-level threshold theorem for the observation syntax RSObs.

theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_rsObs_of_lfpCanon {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

Assumption-free canonical variant: instantiate the abstract side directly as alphaCapRaw applied to the concrete lfp.

Exact-pruned canonical variant: instantiate the abstract side as alphaCap.

theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_rsDifferenceThreshold {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

Concrete threshold exactness stated directly over RSDifferenceToSet.

theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAtExact_iff_rsDifferenceThreshold {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

Exact-pruned threshold exactness stated directly over RSDifferenceToSet.

theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_lfpAbstractDRS_iff_rsDifferenceThreshold {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

Exact-pruned threshold theorem stated over the abstract lfp lfpAbstractDRS.

theorem EqCheckingAbstractInterpretation.Ready.thresholdWitness_lfpAbstractDRS_iff_rsDifferenceThreshold {Action : Type u} {Name : Type v} (env : CCS.Env Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

Paper-style threshold exactness for the abstract lfp lfpAbstractDRS.