Documentation

Validator.StateSetFormalism.Formalism

All variables i have a primed and an unprimed version, represented by 2 * i + 1 and 2 * i respectively.

def Fin.toUnprimed {n : } :
Fin nFin (2 * n)
Equations
Instances For
    def Fin.divNat' {n m : } (i : Fin (m * n)) :
    Fin n
    Equations
    Instances For
      def Fin.toPrimed {n : } (i : Fin (2 * n)) (h : Even i) :
      Fin (2 * n)
      Equations
      Instances For
        @[reducible, inline]
        abbrev STRIPS.VarSet.IsUnprimed {n : } (V : VarSet (2 * n)) :
        Equations
        Instances For
          @[simp]
          def STRIPS.VarSet.toUnprimed {n : } (V : VarSet n) :
          VarSet (2 * n)
          Equations
          Instances For
            theorem STRIPS.VarSet.mem_toUnprimed {n : } {V : VarSet n} {i : Fin (2 * n)} :
            Equations
            Instances For
              Equations
              Instances For
                def Validator.Formula.Model.toPrimed {n : } (V : STRIPS.VarSet n) (M : Model (2 * n)) :
                Model (2 * n)

                Swap the primed and unprimed versions of the variables in V and replace the other primed variables with their even version.

                Equations
                Instances For
                  theorem Validator.Formula.Model.toPrimed_eq {n : } (V : STRIPS.VarSet n) (M : Model (2 * n)) :
                  toPrimed V M = fun (i : Fin (2 * n)) => if h : ¬Even i then M i - 1, else if i.divNat' V then M i + 1, else M i
                  class Validator.Formalism {n : } (pt : STRIPS.PlanningTask n) (R : Type) extends Validator.Formula (2 * n) R :
                  Instances
                    @[implicit_reducible]
                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[reducible, inline]
                    Equations
                    Instances For
                      @[reducible, inline]
                      Equations
                      Instances For
                        @[reducible, inline]
                        Equations
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem Validator.Formalism.UnprimedVariable.mem_vars_ofVarSet {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] [h : Formula.OfPartialModel (2 * n) R] {V : STRIPS.VarSet n} {pos : Bool} {i : Fin (2 * n)} :
                            i (↑(ofVarSet R V pos)).vars Even i i.divNat' V
                            @[simp]
                            theorem Validator.Formalism.UnprimedVariable.mem_models_ofVarSet {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] [h : Formula.OfPartialModel (2 * n) R] {V : STRIPS.VarSet n} {pos : Bool} {M : Formula.Model (2 * n)} :
                            M (↑(ofVarSet R V pos)).models iV, i M.unprimedState pos = true
                            Equations
                            Instances For
                              inductive Validator.Formalism.Literal {n : } (pt : STRIPS.PlanningTask n) (R : Type) [Formalism pt R] :
                              Instances For
                                @[simp]
                                @[simp]
                                Instances For
                                  @[reducible, inline]
                                  Equations
                                  Instances For
                                    Equations
                                    Instances For
                                      theorem Validator.Formalism.Variables.mem_inter {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {X : Variables pt R} (s : STRIPS.State n) :
                                      s X.inter ∃ (M : Formula.Model (2 * n)), M.unprimedState = s xX, M x.models
                                      Equations
                                      Instances For
                                        theorem Validator.Formalism.Variables.mem_union {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {X : Variables pt R} (s : STRIPS.State n) :
                                        s X.union ∃ (M : Formula.Model (2 * n)), M.unprimedState = s xX, M x.models
                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem Validator.Formalism.UnprimedVariables.mem_inter {n : } {pt : STRIPS.PlanningTask n} {R : Type} [F : Formalism pt R] {X : UnprimedVariables pt R} {s : STRIPS.State n} :
                                          s X.val.inter xX, s (↑x).toStates
                                          theorem Validator.Formalism.UnprimedVariables.inter_subset_union_iff_models {n : } {pt : STRIPS.PlanningTask n} {R : Type} [F : Formalism pt R] (X1 : Variables pt R) (X2 : UnprimedVariables pt R) :
                                          X1.interX2.val.union ∀ (M : Formula.Model (2 * n)), (∀ xX1, M Formula.models x)xX2, M (↑x).models
                                          Equations
                                          Instances For
                                            theorem Validator.Formalism.UnprimedVariables.mem_inter_toPrimed {n : } {pt : STRIPS.PlanningTask n} {R : Type} [F : Formalism pt R] [Formula.Rename (2 * n) R] {X : UnprimedVariables pt R} {V : STRIPS.VarSet n} {s : STRIPS.State n} :
                                            s (X.toPrimed V).inter s'X.val.inter, iV, i s' i s
                                            @[implicit_reducible]
                                            Equations
                                            @[simp]
                                            theorem Validator.Formalism.Literals.append_def {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] (L1 L2 : Literals pt R) :
                                            L1 ++ L2 = (L1.1 ++ L2.1, L1.2 ++ L2.2)
                                            @[simp]
                                            theorem Validator.Formalism.Literals.append_pos {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {L1 L2 : Literals pt R} :
                                            (L1 ++ L2).1 = L1.1 ++ L2.1
                                            @[simp]
                                            theorem Validator.Formalism.Literals.append_neg {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {L1 L2 : Literals pt R} :
                                            (L1 ++ L2).2 = L1.2 ++ L2.2
                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem Validator.Formalism.Literals.mem_union {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {ls : Literals pt R} {s : STRIPS.State n} :
                                              s ls.union ∃ (M : Formula.Model (2 * n)), M.unprimedState = s ((∃ xls.1, M x.models) xls.2, Mx.models)
                                              @[simp]
                                              theorem Validator.Formalism.Literals.union_append {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {L1 L2 : Literals pt R} :
                                              (L1 ++ L2).union = L1.union L2.union
                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem Validator.Formalism.Literals.mem_inter {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {L : Literals pt R} {s : STRIPS.State n} :
                                                s L.inter ∃ (M : Formula.Model (2 * n)), M.unprimedState = s (∀ xL.1, M x.models) xL.2, Mx.models
                                                Equations
                                                Instances For
                                                  @[implicit_reducible]
                                                  Equations
                                                  @[simp]
                                                  theorem Validator.Formalism.UnprimedLiterals.append_def {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] (L1 L2 : UnprimedLiterals pt R) :
                                                  L1 ++ L2 = (L1.1 ++ L2.1, L1.2 ++ L2.2)
                                                  @[simp]
                                                  theorem Validator.Formalism.UnprimedLiterals.val_append {n : } {pt : STRIPS.PlanningTask n} {R : Type} [Formalism pt R] {L1 L2 : UnprimedLiterals pt R} :
                                                  (L1 ++ L2).val = L1.val ++ L2.val
                                                  @[simp]

                                                  Note that this is not true for primed variables

                                                  Instances For
                                                    Instances For
                                                      Instances For
                                                        Instances For
                                                          Instances For
                                                            Instances For
                                                              Instances For