Documentation

MIPRE.Background.QLD.PauliBooleanCorrect

Correctness of the uniform Pauli decision program #

noncomputable def MIPRE.QLD.PauliBooleanProgram.encodedInput {k m : ℕ} (E : SAT.BinField k) (j : ℕ) (T U : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) :
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem MIPRE.QLD.PauliBooleanProgram.explicitDecode_ty {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] {m : ℕ} (π : F ≃ F) (T : Ty) (x : PauliCL.Coord m → F) :
    @[simp]
    theorem MIPRE.QLD.PauliBooleanProgram.route_encodedInput {k m : ℕ} (E : SAT.BinField k) (j : ℕ) (T U : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) :
    theorem MIPRE.QLD.PauliBooleanProgram.leftParser_encodedInput {k m : ℕ} (E : SAT.BinField k) (hk : 0 < k) (j : ℕ) (π : E.carrier ≃ E.carrier) (T U : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) (ha : (PauliCL.ExplicitSeed.decode π T x).fmtOk a = true) (hb : (PauliCL.ExplicitSeed.decode π U y).fmtOk b = true) :
    (leftParser.toFun (encodedInput E j T U x y a b)).1 = true
    theorem MIPRE.QLD.PauliBooleanProgram.rightParser_encodedInput {k m : ℕ} (E : SAT.BinField k) (hk : 0 < k) (j : ℕ) (π : E.carrier ≃ E.carrier) (T U : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) (ha : (PauliCL.ExplicitSeed.decode π T x).fmtOk a = true) (hb : (PauliCL.ExplicitSeed.decode π U y).fmtOk b = true) :
    (rightParser.toFun (encodedInput E j T U x y a b)).1 = true
    theorem MIPRE.QLD.PauliBooleanProgram.program_of_formatted {k m : ℕ} (E : SAT.BinField k) (hk : 0 < k) (j : ℕ) (π : E.carrier ≃ E.carrier) (T U : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) (ha : (PauliCL.ExplicitSeed.decode π T x).fmtOk a = true) (hb : (PauliCL.ExplicitSeed.decode π U y).fmtOk b = true) :
    theorem MIPRE.QLD.PauliBooleanProgram.explicitDecode_format_eq {F : Type u_1} [Field F] [Fintype F] [DecidableEq F] {m d : ℕ} (π : F ≃ F) (T : Ty) (x y : PauliCL.Coord m → F) (a : Answer F m d) :
    theorem MIPRE.QLD.PauliBooleanProgram.program_same_type {k m : ℕ} (E : SAT.BinField k) (hk : 0 < k) (j : ℕ) (π : E.carrier ≃ E.carrier) (T : Ty) (x y : PauliCL.Coord m → E.carrier) (a b : Answer E.carrier m 1) (ha : (PauliCL.ExplicitSeed.decode π T x).fmtOk a = true) (hb : (PauliCL.ExplicitSeed.decode π T y).fmtOk b = true) :
    program.toFun (encodedInput E j T T x y a b) = decide (a = b)
    theorem MIPRE.QLD.PauliBooleanProgram.program_diagonal (k : ℕ) (hk : 1 ≤ k) (j m : ℕ) (W : Bas) (x y : PauliCL.Coord m → (SAT.shoupBinField k hk).carrier) (a : (SAT.shoupBinField k hk).carrier) (f : LIDT.LinePoly (SAT.shoupBinField k hk).carrier (m * 1)) :
    program.toFun (encodedInput (SAT.shoupBinField k hk) j (Ty.point W) (Ty.dline W) x y (Answer.val a) (Answer.dpoly f)) = lowDeg (fun (i : Fin m) => y (PauliCL.Coord.point W i)) (fun (i : Fin m) => y (PauliCL.Coord.direction i)) (fun (i : Fin m) => x (PauliCL.Coord.point W i)) f a