Documentation

Std.Internal.Do.Assertion

Additional Complete Lattice Operations #

Extensions to Lean.Order.CompleteLattice providing additional operations needed for program verification.

noncomputable def Lean.Order.top {α : Type u} [CompleteLattice α] :
α

Top element of a complete lattice (supremum of all elements)

Equations
Instances For

    Top element of a complete lattice (supremum of all elements)

    Equations
    Instances For
      @[implicit_reducible]
      noncomputable def Lean.Order.instCCPO_std {α : Type u} [CompleteLattice α] :
      CCPO α

      A complete lattice is a chain-complete partial order.

      Equations
      Instances For
        noncomputable def Lean.Order.meet {α : Type u} [CompleteLattice α] (x y : α) :
        α

        Binary meet (infimum)

        Equations
        Instances For

          Binary meet (infimum)

          Equations
          Instances For
            theorem Lean.Order.meet_le_left {α : Type u} [CompleteLattice α] (x y : α) :
            theorem Lean.Order.meet_le_right {α : Type u} [CompleteLattice α] (x y : α) :
            theorem Lean.Order.le_meet {α : Type u} [CompleteLattice α] (x y z : α) :
            noncomputable def Lean.Order.join {α : Type u} [CompleteLattice α] (x y : α) :
            α

            Binary join (supremum)

            Equations
            Instances For

              Binary join (supremum)

              Equations
              Instances For
                theorem Lean.Order.left_le_join {α : Type u} [CompleteLattice α] (x y : α) :
                theorem Lean.Order.right_le_join {α : Type u} [CompleteLattice α] (x y : α) :
                theorem Lean.Order.join_le {α : Type u} [CompleteLattice α] (x y z : α) :
                noncomputable def Lean.Order.iInf {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) :
                α

                Indexed infimum

                Equations
                Instances For
                  theorem Lean.Order.iInf_le {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) (i : ι) :
                  theorem Lean.Order.le_iInf {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) (x : α) :
                  (∀ (i : ι), PartialOrder.rel x (f i))PartialOrder.rel x (iInf f)
                  @[simp]
                  theorem Lean.Order.iInf_fun_apply {ι : Type v} {σ : Type w} {β : Type u} [CompleteLattice β] (f : ισβ) (s : σ) :
                  iInf f s = iInf fun (i : ι) => f i s

                  Pointwise characterization of indexed infimum on function lattices.

                  noncomputable def Lean.Order.iSup {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) :
                  α

                  Indexed supremum

                  Equations
                  Instances For
                    theorem Lean.Order.le_iSup {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) (i : ι) :
                    theorem Lean.Order.iSup_le {α : Type u} [CompleteLattice α] {ι : Type v} (f : ια) (x : α) :
                    (∀ (i : ι), PartialOrder.rel (f i) x)PartialOrder.rel (iSup f) x
                    theorem Lean.Order.sup_fun_apply {σ : Type v} {β : Type w} [CompleteLattice β] (c : (σβ)Prop) (s : σ) :
                    CompleteLattice.sup c s = CompleteLattice.sup fun (y : β) => (f : σβ), c f f s = y

                    Pointwise characterization of CompleteLattice.sup on function lattices: (sup c) s = sup (fun y => ∃ f, c f ∧ f s = y).

                    @[simp]
                    theorem Lean.Order.meet_fun_apply {σ : Type v} {β : Type w} [CompleteLattice β] (a b : σβ) (s : σ) :
                    meet a b s = meet (a s) (b s)

                    Pointwise characterization of binary meet on function lattices.

                    @[simp]
                    theorem Lean.Order.join_fun_apply {σ : Type v} {β : Type w} [CompleteLattice β] (a b : σβ) (s : σ) :
                    join a b s = join (a s) (b s)

                    Pointwise characterization of binary join on function lattices.

                    Prop Embedding into Partial Order #

                    Embedding propositions into a partial order with top and bottom.

                    CompleteLattice instance for Prop #

                    We define a CompleteLattice structure on Prop where:

                    @[implicit_reducible]
                    Equations
                    • One or more equations did not get rendered due to their size.

                    Supremum for Prop: true iff some element of the set is true

                    Equations
                    Instances For
                      @[simp]
                      theorem Lean.Order.iInf_prop_eq_forall {ι : Type u} (f : ιProp) :
                      iInf f = ∀ (i : ι), f i
                      @[simp]
                      theorem Lean.Order.meet_prop_eq_and (a b : Prop) :
                      meet a b = (a b)
                      @[simp]
                      theorem Lean.Order.join_prop_eq_or (a b : Prop) :
                      join a b = (a b)

                      Assertion #

                      The Assertion class and Assertion.ofProp embedding.

                      An assertion type is equipped with a CompleteLattice structure, used as the carrier for pre- and postconditions.

                      Instances
                        @[implicit_reducible]

                        An assertion type is a chain-complete partial order.

                        Equations
                        Instances For
                          noncomputable def Std.Internal.Do.Assertion.ofProp {l : Type u_1} [Assertion l] (p : Prop) :
                          l

                          Embedding of propositions into an assertion type. ⌜p⌝ embeds p : Prop as if p holds and otherwise.

                          Equations
                          Instances For

                            Embedding of propositions into an assertion type. ⌜p⌝ embeds p : Prop as if p holds and otherwise.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              theorem Std.Internal.Do.Assertion.ofProp_imp {l : Type u_1} [Assertion l] (p₁ p₂ : Prop) :
                              (p₁p₂)Lean.Order.PartialOrder.rel (ofProp p₁) (ofProp p₂)