Documentation

BlrPcp.Problems.LinEq

Linear equations #

This file defines the LINEQ language, its executable LPCP verifier, and the linear PCP theorem for LINEQ.

@[reducible, inline]
abbrev LINEQ (F : Type) (m n : ) [Field F] :
Set (Matrix (Fin m) (Fin n) F × (Fin mF))
Equations
Instances For
    def LINEQ.size {F : Type} [Fintype F] {m n : } :
    Matrix (Fin m) (Fin n) F × (Fin mF)
    Equations
    Instances For
      theorem LINEQ.dotProduct_transpose_mulVec_eq {F : Type} [Field F] {m n : } (M : Matrix (Fin m) (Fin n) F) (b : Fin nF) (c r : Fin mF) (h : M.mulVec b = c) :
      theorem LINEQ.dotProduct_eq_add_sum_erase {F : Type} [Field F] {m : } (a b : Fin mF) (k : Fin m) :
      a ⬝ᵥ b = a k * b k + iFinset.univ.erase k, a i * b i
      noncomputable def LINEQ.normalizeLinearForm {F : Type} [Field F] {m : } (a : Fin mF) (k : Fin m) :
      (Fin mF)Fin mF
      Equations
      Instances For
        noncomputable def LINEQ.normalizeLinearFormInv {F : Type} [Field F] {m : } (a : Fin mF) (k : Fin m) :
        (Fin mF)Fin mF
        Equations
        Instances For
          theorem LINEQ.normalizeLinearForm_bijective {F : Type} [Field F] {m : } {a : Fin mF} {k : Fin m} (hk : a k 0) :
          theorem LINEQ.coordinate_zero_card_div_le {F : Type} [Field F] [Fintype F] [DecidableEq F] {m : } (k : Fin m) :
          {r : Fin mF | r k = 0}.card / (Fintype.card F) ^ m 1 / (Fintype.card F)
          theorem LINEQ.uniform_coordinate_zero_prob_mul_card_le_one {F : Type} [Field F] [Fintype F] [DecidableEq F] [Inhabited F] [SampleableType F] {m : } (k : Fin m) :
          Pr[fun (r : Fin mF) => r k = 0 | $ᵗ(Fin mF)] * (Fintype.card F) 1
          theorem LINEQ.linear_form_uniform_prob_mul_card_le_one {F : Type} [Field F] [Fintype F] [DecidableEq F] [Inhabited F] [SampleableType F] {m : } {a : Fin mF} (ha : a 0) :
          Pr[fun (r : Fin mF) => a ⬝ᵥ r = 0 | $ᵗ(Fin mF)] * (Fintype.card F) 1
          def LINEQ.decodeUniformFin (α : Type) [Fintype α] [Encodable α] [Nonempty α] :
          Fin (Fintype.card α - 1 + 1)α
          Equations
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def LINEQ.verifier {F : Type} [Field F] [Fintype F] [DecidableEq F] [Inhabited F] {m n : } [Encodable F] :
              LPCPVerifier (Matrix (Fin m) (Fin n) F × (Fin mF)) size F fun (x : ) => n
              Equations
              Instances For
                theorem LINEQ.verifier_queryBound {F : Type} [Field F] [Fintype F] [DecidableEq F] [Inhabited F] {m n : } [Encodable F] (x : Matrix (Fin m) (Fin n) F × (Fin mF)) :
                theorem LINEQ_LPCP {F : Type} [Field F] [Fintype F] [DecidableEq F] [Inhabited F] [SampleableType F] {m n : } :
                LINEQ F m n LPCP LINEQ.size 0 (1 / (Fintype.card F)) F (fun (x : ) => n) (fun (x : ) => 1) fun (x : ) => m * Nat.clog 2 (Fintype.card F)