Documentation

EqCheckingAbstractInterpretation.Ready.Basic

@[reducible, inline]
abbrev EqCheckingAbstractInterpretation.Ready.ProcSet (Action : Type u) (Name : Type v) :
Type (max v u)
Equations
Instances For
    @[implicit_reducible]
    instance EqCheckingAbstractInterpretation.Ready.instSingletonCCSProcSet {Action : Type u} {Name : Type v} :
    Singleton (CCS.CCS Action Name) (ProcSet Action Name)
    Equations
    @[reducible, inline]
    Equations
    Instances For
      @[reducible, inline]
      abbrev EqCheckingAbstractInterpretation.Ready.DiffSysRS (Action : Type u) (Name : Type v) (Obs : Type w) :
      Type (max (max v u) w)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Capability lattice elements from the paper: T, S, F, RS.

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]
            abbrev EqCheckingAbstractInterpretation.Ready.AbsSysRS (Action : Type u) (Name : Type v) :
            Type (max v u)
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              theorem EqCheckingAbstractInterpretation.Ready.capJoin_mono {a a' b b' : Capability} (ha : capLe a a') (hb : capLe b b') :
              capLe (capJoin a b) (capJoin a' b')

              Capability requirement contributed by observation shape information.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Capability abstraction without minimization/pruning.

                Equations
                Instances For

                  Minimal-capability pruning on capability predicates.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def EqCheckingAbstractInterpretation.Ready.alphaCap {Obs : Type w} (ObsCap : CapabilityObsProp) (X : ObsSet Obs) :

                    Capability abstraction with pruning to minimal capabilities.

                    Equations
                    Instances For
                      def EqCheckingAbstractInterpretation.Ready.notPreorderAt {Action : Type u} {Name : Type v} {Obs : Type w} (ObsCap : CapabilityObsProp) (Diff : DiffSysRS Action Name Obs) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

                      Concrete threshold failure criterion for a difference relation.

                      Equations
                      Instances For
                        def EqCheckingAbstractInterpretation.Ready.abstractFailsAt {Action : Type u} {Name : Type v} (Abs : AbsSysRS Action Name) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :

                        Abstract threshold failure criterion for a capability-valued analysis result.

                        Equations
                        Instances For

                          Monotonicity condition needed for threshold soundness/completeness: if a capability can observe o, then every stronger capability can observe o.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem EqCheckingAbstractInterpretation.Ready.thresholdWitness_alphaCapRaw_iff {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (X : ObsSet Obs) (N : Capability) :
                            thresholdWitness (alphaCapRaw ObsCap X) N (o : Obs), X o ObsCap N o

                            Threshold reading for alphaCapRaw: it is equivalent to concrete intersection with the threshold fragment, under monotonicity of fragment observability.

                            theorem EqCheckingAbstractInterpretation.Ready.alphaCapRaw_upward_closed {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (X : ObsSet Obs) (N : Capability) :
                            upClosure (alphaCapRaw ObsCap X) N alphaCapRaw ObsCap X N
                            theorem EqCheckingAbstractInterpretation.Ready.upClosure_alphaCap_iff_alphaCapRaw {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (X : ObsSet Obs) (N : Capability) :
                            upClosure (alphaCap ObsCap X) N alphaCapRaw ObsCap X N
                            theorem EqCheckingAbstractInterpretation.Ready.thresholdWitness_alphaCap_iff {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (X : ObsSet Obs) (N : Capability) :
                            thresholdWitness (alphaCap ObsCap X) N (o : Obs), X o ObsCap N o

                            Threshold reading for alphaCap: pruning preserves threshold information.

                            theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_of_alpha {Action : Type u} {Name : Type v} {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (Diff : DiffSysRS Action Name Obs) (Abs : AbsSysRS Action Name) (hAlpha : ∀ (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability), Abs p Q c alphaCapRaw ObsCap (Diff p Q) c) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
                            abstractFailsAt Abs N p Q notPreorderAt ObsCap Diff N p Q

                            Unified threshold theorem at the level used in Section 5: if abstract values are pointwise alphaCapRaw of concrete differences, then abstract threshold witnesses are exactly concrete threshold failures.

                            theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_of_alphaExact {Action : Type u} {Name : Type v} {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (Diff : DiffSysRS Action Name Obs) (Abs : AbsSysRS Action Name) (hAlpha : ∀ (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability), Abs p Q c alphaCap ObsCap (Diff p Q) c) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
                            abstractFailsAt Abs N p Q notPreorderAt ObsCap Diff N p Q

                            Exact-pruned variant of the unified threshold theorem.

                            theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_of_lfp {Action : Type u} {Name : Type v} {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (lfpConcrete : DiffSysRS Action Name Obs) (lfpAbs : AbsSysRS Action Name) (hLfp : ∀ (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability), lfpAbs p Q c alphaCapRaw ObsCap (lfpConcrete p Q) c) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
                            abstractFailsAt lfpAbs N p Q notPreorderAt ObsCap lfpConcrete N p Q

                            Least-fixpoint variant matching the paper's Section 5 statement shape. lfpAbs is the abstract lfp result, lfpConcrete the concrete one.

                            theorem EqCheckingAbstractInterpretation.Ready.abstractFailsAt_iff_notPreorderAt_of_lfpExact {Action : Type u} {Name : Type v} {Obs : Type w} (ObsCap : CapabilityObsProp) (hMono : ObsCapMonotone ObsCap) (lfpConcrete : DiffSysRS Action Name Obs) (lfpAbs : AbsSysRS Action Name) (hLfp : ∀ (p : CCS.CCS Action Name) (Q : ProcSet Action Name) (c : Capability), lfpAbs p Q c alphaCap ObsCap (lfpConcrete p Q) c) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
                            abstractFailsAt lfpAbs N p Q notPreorderAt ObsCap lfpConcrete N p Q

                            Least-fixpoint threshold theorem for exact-pruned capability values.

                            Concrete observation syntax used to instantiate the unified capability framework: positive branching plus negative (refusal) tests.

                            Instances For
                              partial def EqCheckingAbstractInterpretation.Ready.instReprRSObs.repr {Action✝ : Type u_1} [Repr Action✝] :
                              RSObs Action✝NatStd.Format

                              Aggregate child capability requirements from positive branches.

                              Equations
                              Instances For

                                Least capability needed to express a concrete ready-simulation observation.

                                Equations
                                Instances For
                                  theorem EqCheckingAbstractInterpretation.Ready.childrenReq_member_le {Action : Type u} {ao : Action × RSObs Action} {pos : List (Action × RSObs Action)} (hMem : ao pos) :
                                  theorem EqCheckingAbstractInterpretation.Ready.childrenReq_map_le {Action : Type u} (f : Action × RSObs ActionRSObs Action) (pos : List (Action × RSObs Action)) (hLe : ∀ (ao : Action × RSObs Action), ao poscapLe (reqOfObs (f ao)) (reqOfObs ao.snd)) :
                                  capLe (childrenReq (List.map (fun (ao : Action × RSObs Action) => (ao.fst, f ao)) pos)) (childrenReq pos)
                                  theorem EqCheckingAbstractInterpretation.Ready.reqOfObs_node_map_le {Action : Type u} (f : Action × RSObs ActionRSObs Action) (pos : List (Action × RSObs Action)) (neg : List Action) (hLe : ∀ (ao : Action × RSObs Action), ao poscapLe (reqOfObs (f ao)) (reqOfObs ao.snd)) :
                                  capLe (reqOfObs (RSObs.node (List.map (fun (ao : Action × RSObs Action) => (ao.fst, f ao)) pos) neg)) (reqOfObs (RSObs.node pos neg))
                                  def EqCheckingAbstractInterpretation.Ready.replaceChildren {Action : Type u} (pos : List (Action × RSObs Action)) (f : Fin pos.lengthRSObs Action) :
                                  List (Action × RSObs Action)

                                  Replace children by branch occurrence rather than branch value.

                                  Equations
                                  Instances For
                                    theorem EqCheckingAbstractInterpretation.Ready.replaceChildren_length {Action : Type u} (pos : List (Action × RSObs Action)) (f : Fin pos.lengthRSObs Action) :
                                    theorem EqCheckingAbstractInterpretation.Ready.replaceChildren_get {Action : Type u} (pos : List (Action × RSObs Action)) (f : Fin pos.lengthRSObs Action) (i : Fin pos.length) :
                                    (replaceChildren pos f).get i, = ((pos.get i).fst, f i)
                                    theorem EqCheckingAbstractInterpretation.Ready.childrenReq_replaceChildren_le {Action : Type u} (pos : List (Action × RSObs Action)) (f : Fin pos.lengthRSObs Action) (hLe : ∀ (i : Fin pos.length), capLe (reqOfObs (f i)) (reqOfObs (pos.get i).snd)) :
                                    theorem EqCheckingAbstractInterpretation.Ready.reqOfObs_node_replaceChildren_le {Action : Type u} (pos : List (Action × RSObs Action)) (neg : List Action) (f : Fin pos.lengthRSObs Action) (hLe : ∀ (i : Fin pos.length), capLe (reqOfObs (f i)) (reqOfObs (pos.get i).snd)) :
                                    theorem EqCheckingAbstractInterpretation.Ready.rsObsCap_child {Action : Type u} {N : Capability} {pos : List (Action × RSObs Action)} {neg : List Action} {ao : Action × RSObs Action} (hCap : rsObsCap N (RSObs.node pos neg)) (hMem : ao pos) :
                                    theorem EqCheckingAbstractInterpretation.Ready.rsObsCap_S_node_neg_nil {Action : Type u} {pos : List (Action × RSObs Action)} {neg : List Action} (hCap : rsObsCap Capability.S (RSObs.node pos neg)) :
                                    neg = []
                                    theorem EqCheckingAbstractInterpretation.Ready.rsObsCap_T_node_neg_nil {Action : Type u} {pos : List (Action × RSObs Action)} {neg : List Action} (hCap : rsObsCap Capability.T (RSObs.node pos neg)) :
                                    neg = []
                                    theorem EqCheckingAbstractInterpretation.Ready.rsObsCap_F_node_no_branching {Action : Type u} {pos : List (Action × RSObs Action)} {neg : List Action} (hCap : rsObsCap Capability.F (RSObs.node pos neg)) :
                                    ¬1 < pos.length
                                    theorem EqCheckingAbstractInterpretation.Ready.rsObsCap_T_node_no_branching {Action : Type u} {pos : List (Action × RSObs Action)} {neg : List Action} (hCap : rsObsCap Capability.T (RSObs.node pos neg)) :
                                    ¬1 < pos.length
                                    theorem EqCheckingAbstractInterpretation.Ready.notPreorderAt_iff_intersects_fragment {Action : Type u} {Name : Type v} (Diff : DiffSysRS Action Name (RSObs Action)) (N : Capability) (p : CCS.CCS Action Name) (Q : ProcSet Action Name) :
                                    notPreorderAt rsObsCap Diff N p Q (o : RSObs Action), Diff p Q o rsObsCap N o

                                    Threshold reading as concrete fragment intersection for this instance.