Documentation

LeanPool.FormalizationOfBoundedArithmetic.DisplayedVariables

LeanPool.FormalizationOfBoundedArithmetic.DisplayedVariables #

inductive FvName :

Names used for displayed free variables in formulas.

Instances For
    class HasVar (n : FvName) (α : Type u_1) :
    Type u_1

    Typeclass selecting the displayed variable named n inside a variable type.

    • fv : α

      The selected displayed variable.

    Instances
      inductive Vars0 :

      No displayed variables.

        Instances For
          inductive Vars1 :

          A singleton displayed-variable context.

          Instances For
            inductive Vars2 :

            A two-variable displayed context.

            Instances For
              inductive Vars3 :
              FvNameFvNameFvNameType

              A three-variable displayed context.

              Instances For
                inductive Vars4 :
                FvNameFvNameFvNameFvNameType

                A four-variable displayed context.

                Instances For
                  @[implicit_reducible]
                  instance instHasVarVars1 (n1 : FvName) :
                  HasVar n1 (Vars1 n1)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars2 (n1 n2 : FvName) :
                  HasVar n1 (Vars2 n1 n2)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars2_1 (n1 n2 : FvName) :
                  HasVar n2 (Vars2 n1 n2)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars3 (n1 n2 n3 : FvName) :
                  HasVar n1 (Vars3 n1 n2 n3)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars3_1 (n1 n2 n3 : FvName) :
                  HasVar n2 (Vars3 n1 n2 n3)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars3_2 (n1 n2 n3 : FvName) :
                  HasVar n3 (Vars3 n1 n2 n3)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars4 (n1 n2 n3 n4 : FvName) :
                  HasVar n1 (Vars4 n1 n2 n3 n4)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars4_1 (n1 n2 n3 n4 : FvName) :
                  HasVar n2 (Vars4 n1 n2 n3 n4)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars4_2 (n1 n2 n3 n4 : FvName) :
                  HasVar n3 (Vars4 n1 n2 n3 n4)
                  Equations
                  @[implicit_reducible]
                  instance instHasVarVars43 (n1 n2 n3 n4 : FvName) :
                  HasVar n4 (Vars4 n1 n2 n3 n4)
                  Equations
                  @[implicit_reducible]
                  Equations
                  @[implicit_reducible]
                  instance instIsEnumVars1 {n1 : FvName} :
                  Equations
                  theorem IsEnum.toIdx.Vars1 {n1 : FvName} {x : _root_.Vars1 n1} :
                  toIdx x = 0
                  @[implicit_reducible]
                  instance instIsEnumVars2 {n1 n2 : FvName} :
                  IsEnum (Vars2 n1 n2)
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem IsEnum.size.Vars2 {n1 n2 : FvName} :
                  size (_root_.Vars2 n1 n2) = 2
                  theorem IsEnum.toIdx.Vars2 {n1 n2 : FvName} {x : _root_.Vars2 n1 n2} :
                  toIdx x = match x with | Vars2.fv1 => 0 | Vars2.fv2 => 1
                  @[implicit_reducible]
                  instance instIsEnumVars3 {n1 n2 n3 : FvName} :
                  IsEnum (Vars3 n1 n2 n3)
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem IsEnum.size.Vars3 {n1 n2 n3 : FvName} :
                  size (_root_.Vars3 n1 n2 n3) = 3
                  theorem IsEnum.toIdx.Vars3 {n1 n2 n3 : FvName} {x : _root_.Vars3 n1 n2 n3} :
                  toIdx x = match x with | Vars3.fv1 => 0 | Vars3.fv2 => 1 | Vars3.fv3 => 2
                  @[implicit_reducible]
                  instance instIsEnumVars4 {n1 n2 n3 n4 : FvName} :
                  IsEnum (Vars4 n1 n2 n3 n4)
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem IsEnum.size.Vars4 {n1 n2 n3 n4 : FvName} :
                  size (_root_.Vars4 n1 n2 n3 n4) = 4
                  theorem IsEnum.toIdx.Vars4 {n1 n2 n3 n4 : FvName} {x : _root_.Vars4 n1 n2 n3 n4} :
                  toIdx x = match x with | Vars4.fv1 => 0 | Vars4.fv2 => 1 | Vars4.fv3 => 2 | Vars4.fv4 => 3
                  def x.name {α : Type u} [h : HasVar FvName.x α] :
                  α

                  The selected variable named x.

                  Equations
                  Instances For
                    def y.name {α : Type u} [h : HasVar FvName.y α] :
                    α

                    The selected variable named y.

                    Equations
                    Instances For
                      def z.name {α : Type u} [h : HasVar FvName.z α] :
                      α

                      The selected variable named z.

                      Equations
                      Instances For
                        def X.name {α : Type u} [h : HasVar FvName.X α] :
                        α

                        The selected variable named X.

                        Equations
                        Instances For
                          def x {α : Type u} {L : FirstOrder.Language} {k : } [h : HasVar FvName.x α] :
                          L.Term (α Fin k)

                          The first-order term for the displayed variable named x.

                          Equations
                          Instances For
                            def y {α : Type u} {L : FirstOrder.Language} {k : } [h : HasVar FvName.y α] :
                            L.Term (α Fin k)

                            The first-order term for the displayed variable named y.

                            Equations
                            Instances For
                              def z {α : Type u} {L : FirstOrder.Language} {k : } [h : HasVar FvName.z α] :
                              L.Term (α Fin k)

                              The first-order term for the displayed variable named z.

                              Equations
                              Instances For
                                def X {α : Type u} {L : FirstOrder.Language} {k : } [h : HasVar FvName.X α] :
                                L.Term (α Fin k)

                                The first-order term for the displayed variable named X.

                                Equations
                                Instances For

                                  Display a one-variable formula as a formula over an explicit sum context.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def FirstOrder.Language.Formula.display2 {L : Language} (name : FvName) {other : FvName} (phi : L.Formula (Vars2 name other)) :
                                    L.Formula (Vars1 name Vars1 other)

                                    Display a two-variable formula by isolating the named left variable.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      def FirstOrder.Language.Formula.display3 {L : Language} (name : FvName) {other1 other2 : FvName} (phi : L.Formula (Vars3 name other1 other2)) :
                                      L.Formula (Vars1 name Vars2 other1 other2)

                                      Display a three-variable formula by isolating the named left variable.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        def FirstOrder.Language.Formula.display4 {L : Language} (name : FvName) {o1 o2 o3 : FvName} (phi : L.Formula (Vars4 name o1 o2 o3)) :
                                        L.Formula (Vars1 name Vars3 o1 o2 o3)

                                        Display a four-variable formula by isolating the named left variable.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def FirstOrder.Language.Formula.displaySwapleft {L : Language} {n1 n2 n3 : FvName} (phi : L.Formula (Vars1 n1 Vars2 n2 n3)) :
                                          L.Formula (Vars2 n1 n2 Vars1 n3)

                                          Reassociate displayed variables from x | (y,z) to (x,y) | z.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def FirstOrder.Language.Formula.displaySwapleft' {L : Language} {n1 n2 n3 : FvName} (phi : L.Formula (Vars1 n1 Vars2 n2 n3)) :
                                            L.Formula ((Vars1 n1 Vars1 n2) Vars1 n3)

                                            Reassociate displayed variables from x | (y,z) to (x | y) | z.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def FirstOrder.Language.Formula.rotate21 {L : Language} {n1 n2 : FvName} (phi : L.Formula (Vars2 n1 n2)) :
                                              L.Formula (Vars2 n2 n1)

                                              Swap the two variables in a two-variable displayed formula.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def FirstOrder.Language.Formula.rotate213 {L : Language} (n1 n2 n3 : FvName) (phi : L.Formula (Vars3 n1 n2 n3)) :
                                                L.Formula (Vars3 n2 n1 n3)

                                                Swap the first two variables in a three-variable displayed formula.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def FirstOrder.Language.Formula.rotate231 {L : Language} (n1 n2 n3 : FvName) (phi : L.Formula (Vars3 n1 n2 n3)) :
                                                  L.Formula (Vars3 n3 n1 n2)

                                                  Rotate the variables in a three-variable displayed formula.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def FirstOrder.Language.BoundedFormula.flip {α : Type u} {L : Language} {β : Type u_3} {n : } (phi : L.BoundedFormula (α β) n) :
                                                    L.BoundedFormula (β α) n

                                                    Flip the two sides of the free-variable sum in a bounded formula.

                                                    Equations
                                                    Instances For
                                                      def FirstOrder.Language.Formula.flip {α : Type u} {L : Language} {β : Type u_3} (phi : L.Formula (α β)) :
                                                      L.Formula (β α)

                                                      Flip the two sides of the free-variable sum in a formula.

                                                      Equations
                                                      Instances For
                                                        def FirstOrder.Language.Formula.mkInl {α : Type u} {L : Language} (phi : L.Formula α) :

                                                        Embed a formula into a sum context by putting all variables on the left.

                                                        Equations
                                                        Instances For