Documentation

AMMLib.Transaction.Swap.Basic

structure Swap (sx : SX) (s : Γ) (a : A) (t0 t1 : T) (v0 : ℝ>0) :
Instances For
    theorem Swap.singleton {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {x : ℝ>0} (sw0 sw1 : Swap sx s a t0 t1 x) :
    sw0 = sw1
    def Swap.rate {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
    Equations
    Instances For
      def Swap.y {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
      Equations
      Instances For
        theorem Swap.y_eq {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {x : ℝ>0} (s✝ : Swap sx s a t0 t1 x) :
        s✝.y = x * s✝.rate
        theorem Swap.y_lt_r1 {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
        sw.y < s.amms.r1 t0 t1
        theorem Swap.y_lt_r1₀ {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
        sw.y < s.amms.r1₀ t0 t1
        noncomputable def Swap.apply {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
        Equations
        Instances For
          def Swap.is_solution {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {x₀ : ℝ>0} (sw : Swap sx s a t0 t1 x₀) (o : O) :
          Equations
          Instances For
            @[simp]
            theorem Swap.atoms {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
            sw.apply.atoms = (s.atoms.sub a t0 v0 ).add a t1 sw.y
            @[simp]
            theorem Swap.mints {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
            @[simp]
            theorem Swap.amms {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
            sw.apply.amms = (s.amms.sub_r1 t0 t1 sw.y ).add_r0 t0 t1 v0
            @[simp]
            theorem Swap.b0_self {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
            (sw.apply.atoms.get a) t0 = (s.atoms.get a) t0 - v0
            @[simp]
            theorem Swap.b1_self {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) :
            (sw.apply.atoms.get a) t1 = (s.atoms.get a) t1 + sw.y
            @[simp]
            theorem Swap.drain_atoms {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) (a' : A) :
            ((sw.apply.atoms.get a').drain t0).drain t1 = ((s.atoms.get a').drain t0).drain t1
            @[simp]
            theorem Swap.mintsupply {sx : SX} {s : Γ} {t0 t1 : T} {a : A} {v0 : ℝ>0} (sw : Swap sx s a t0 t1 v0) (t0' t1' : T) :
            sw.apply.mintsupply t0' t1' = s.mintsupply t0' t1'