Documentation

FMMidgard.Meta.Relations

Extra Stateful Relations definitions. #

Main Results #

Equations
Instances For
    def Definition.StrongStep {P I S : Type} [DecidableEq S] (Step : P → I → S → S → Prop) :
    Equations
    Instances For
      def Definition.Disabled {P I S : Type} (RStep : P → I → S → S → Prop) (p : P) (s : S) :
      Equations
      Instances For

        Enabled Predicate #

        Enabled Predicate indicates there is a way how making the relatin progress.

        In our case, we want to say that in a case where we are in a fraudulent situation (state), the action of going to a less fraudulent_ state is possible.

        def Definition.Enabled {P I S : Type} (RStep : P → I → S → S → Prop) (p : P) (s : S) :
        Equations
        Instances For

          Invariants

          def Relations.Invariant {P I S : Type} (STS : P → I → S → S → Prop) (Pred : S → Prop) :
          Equations
          Instances For
            inductive Relations.ReachableSTPlus {P I S : Type} (p : P) (STS : P → I → S → S → Prop) :
            S → S → Prop
            Instances For
              def Relations.Reaches {P I S : Type} (p : P) (STS : P → I → S → S → Prop) (i e : S) (ls : List (I × S)) :
              Equations
              Instances For
                structure StepMachines.StepMachine (P I S : Type) :
                • init : S
                • STS : P → I → S → S → Prop
                Instances For
                  def StepMachines.StepProduct {P I S_1 S_2 : Type} (m1 : StepMachine P I S_1) (m2 : StepMachine P I S_2) :
                  StepMachine P I (S_1 × S_2)
                  Equations
                  Instances For
                    def StepMachines.MonitorProduct {P I S_1 S_2 : Type} (m1 : StepMachine P I S_1) (m2 : StepMachine (P × S_1) I S_2) :
                    StepMachine P I (S_1 × S_2)
                    Equations
                    Instances For
                      def StepMachines.StepMachine.FromInit {P I S : Type} (SM : StepMachine P I S) (p : P) (s : S) :
                      Equations
                      Instances For
                        inductive StepMachines.StepMachine.IFromInit {P I S : Type} (SM : StepMachine P I S) (p : P) (s : S) :
                        Instances For
                          structure StepMachines.ReachInductionStepMachine {P I S : Type} (p : P) (SM : StepMachine P I S) (Pred : S → Prop) :
                          • base_case : Pred SM.init
                          • ind_case (s s' : S) (i : I) : Pred s → SM.FromInit p s → SM.STS p i s s' → Pred s'
                          Instances For
                            structure StepMachines.InductionStepMachine {P I S : Type} (p : P) (SM : StepMachine P I S) (Pred : S → Prop) :
                            • base_case : Pred SM.init
                            • ind_case (s s' : S) (i : I) : Pred s → SM.STS p i s s' → Pred s'
                            Instances For
                              def StepMachines.reachable_is_inductive {P I S : Type} {p : P} {sm : StepMachine P I S} :
                              Equations
                              • ⋯ = ⋯
                              Instances For
                                @[reducible, inline]
                                abbrev StepMachines.StepMachine.AfterInit {P I S : Type} (SM : StepMachine P I S) (p : P) (s : S) :
                                Equations
                                Instances For
                                  theorem StepMachines.ApplyInd {P I S : Type} {Pred : S → Prop} {SM : StepMachine P I S} (p : P) (ind : InductionStepMachine p SM Pred) (s : S) (reachable : Relations.ReachableSTPlus p SM.STS SM.init s) :
                                  Pred s
                                  theorem StepMachines.ApplyFromInit {P I S : Type} {Pred : S → Prop} {SM : StepMachine P I S} (p : P) (ind : InductionStepMachine p SM Pred) (s : S) (reachable : SM.FromInit p s) :
                                  Pred s
                                  theorem StepMachines.ApplyFromInitReach {P I S : Type} {Pred : S → Prop} {SM : StepMachine P I S} (p : P) (ind : ReachInductionStepMachine p SM Pred) (s : S) (reachable : SM.FromInit p s) :
                                  Pred s
                                  def Products.Conditional_Joint {GP : Sort u_1} {P₁ : Type u_2} {P₂ : Type u_3} {S₁ : Type u_4} {S₂ : Type u_5} {A₁ : Type u_6} {A₂ : Type u_7} {O₁ : Type u_8} {O₂ : Type u_9} (R₁ : GP → P₁ → S₁ → A₁ → O₁ → Prop) (R₂ : GP → P₂ → S₂ → A₂ → O₂ → Prop) (Cond : S₁ → A₁ → S₂ → A₂ → Prop) :
                                  GP → P₁ × P₂ → S₁ × S₂ → A₁ × A₂ → O₁ × O₂ → Prop
                                  Equations
                                  Instances For
                                    def Products.Joint {GP : Sort u_1} {P₁ : Type u_2} {P₂ : Type u_3} {S₁ : Type u_4} {S₂ : Type u_5} {A₁ : Type u_6} {A₂ : Type u_7} {O₁ : Type u_8} {O₂ : Type u_9} (R₁ : GP → P₁ → S₁ → A₁ → O₁ → Prop) (R₂ : GP → P₂ → S₂ → A₂ → O₂ → Prop) :
                                    GP → P₁ × P₂ → S₁ × S₂ → A₁ × A₂ → O₁ × O₂ → Prop
                                    Equations
                                    Instances For
                                      def InterfaceRestrictions.SubRel {GP : Sort u_1} {P : Sort u_2} {S : Sort u_3} {Ab : Sort u_4} {At : Sort u_5} {O : Sort u_6} (sup : GP → P → S → At → O → Prop) (lift : Ab → At) (gp : GP) (p : P) (s : S) :
                                      Ab → O → Prop
                                      Equations
                                      Instances For
                                        inductive InterfaceRestrictions.ConditionalSub {GP : Sort u_1} {P : Sort u_2} {S : Sort u_3} {Ab : Sort u_4} {At : Type u_5} {O : Sort u_6} (sup : GP → P → S → At → O → Prop) (lift : S → Ab → Option At) :
                                        GP → P → S → Ab → O → Prop
                                        • condLift {GP : Sort u_1} {P : Sort u_2} {S : Sort u_3} {Ab : Sort u_4} {At : Type u_5} {O : Sort u_6} {sup : GP → P → S → At → O → Prop} {lift : S → Ab → Option At} {gp : GP} {p : P} {s : S} {ab : Ab} {t : At} {o : O} (cond : lift s ab = some t) (step : sup gp p s t o) : ConditionalSub sup lift gp p s ab o
                                        Instances For