@@ -811,6 +811,21 @@ def fiatShamir_hvzkTransferResidual
811811 Reduction.isHVZK init impl rel R →
812812 Reduction.isHVZK fsInit fsImpl rel R.fiatShamir
813813
814+ omit [VCVCompatible StmtIn] in
815+ /-- A perfect Fiat-Shamir HVZK transfer residual supplies the statistical transfer residual at
816+ any target error budget. -/
817+ theorem fiatShamir_statisticalHVZKTransferResidual.of_perfectTransfer
818+ {τ : Type }
819+ (init : ProbComp σ) (impl : QueryImpl oSpec (StateT σ ProbComp))
820+ (fsInit : ProbComp τ)
821+ (fsImpl : QueryImpl (oSpec + fsChallengeOracle StmtIn pSpec) (StateT τ ProbComp))
822+ (rel : Set (StmtIn × WitIn)) (ε : ℝ≥0 )
823+ (R : Reduction oSpec StmtIn WitIn StmtOut WitOut pSpec)
824+ (hTransfer : fiatShamir_hvzkTransferResidual init impl fsInit fsImpl rel R) :
825+ fiatShamir_statisticalHVZKTransferResidual init impl fsInit fsImpl rel ε R := by
826+ intro hHVZK
827+ exact (hTransfer hHVZK).isStatHVZK ε
828+
814829/-- Basic Fiat-Shamir perfect honest-verifier zero-knowledge follows immediately from a discharged
815830transfer residual. This isolates the remaining proof obligation (simulator construction plus
816831transcript distribution coupling) without claiming to solve it. -/
@@ -826,6 +841,20 @@ theorem fiatShamir_isHVZK_of_transfer
826841 Reduction.isHVZK fsInit fsImpl rel R.fiatShamir :=
827842 hTransfer hHVZK
828843
844+ omit [VCVCompatible StmtIn] in
845+ /-- Basic Fiat-Shamir statistical HVZK follows from the stronger perfect transfer residual. -/
846+ theorem fiatShamir_isStatHVZK_of_transfer
847+ {τ : Type }
848+ (init : ProbComp σ) (impl : QueryImpl oSpec (StateT σ ProbComp))
849+ (fsInit : ProbComp τ)
850+ (fsImpl : QueryImpl (oSpec + fsChallengeOracle StmtIn pSpec) (StateT τ ProbComp))
851+ (rel : Set (StmtIn × WitIn)) (ε : ℝ≥0 )
852+ (R : Reduction oSpec StmtIn WitIn StmtOut WitOut pSpec)
853+ (hTransfer : fiatShamir_hvzkTransferResidual init impl fsInit fsImpl rel R)
854+ (hHVZK : Reduction.isHVZK init impl rel R) :
855+ Reduction.isStatHVZK fsInit fsImpl rel R.fiatShamir ε :=
856+ (hTransfer hHVZK).isStatHVZK ε
857+
829858/-- Basic Fiat-Shamir perfect HVZK can be restricted to a sub-relation after applying a perfect
830859simulator-transfer residual on the larger relation. -/
831860theorem fiatShamir_isHVZK_of_transfer_mono_relation
@@ -841,6 +870,40 @@ theorem fiatShamir_isHVZK_of_transfer_mono_relation
841870 (fiatShamir_isHVZK_of_transfer init impl fsInit fsImpl rel R hTransfer hHVZK).mono_relation
842871 hsub
843872
873+ omit [VCVCompatible StmtIn] in
874+ /-- Basic Fiat-Shamir statistical HVZK can be restricted to a sub-relation after applying the
875+ stronger perfect transfer residual on the larger relation. -/
876+ theorem fiatShamir_isStatHVZK_of_transfer_mono_relation
877+ {τ : Type }
878+ (init : ProbComp σ) (impl : QueryImpl oSpec (StateT σ ProbComp))
879+ (fsInit : ProbComp τ)
880+ (fsImpl : QueryImpl (oSpec + fsChallengeOracle StmtIn pSpec) (StateT τ ProbComp))
881+ {rel relSub : Set (StmtIn × WitIn)} (hsub : relSub ⊆ rel) (ε : ℝ≥0 )
882+ (R : Reduction oSpec StmtIn WitIn StmtOut WitOut pSpec)
883+ (hTransfer : fiatShamir_hvzkTransferResidual init impl fsInit fsImpl rel R)
884+ (hHVZK : Reduction.isHVZK init impl rel R) :
885+ Reduction.isStatHVZK fsInit fsImpl relSub R.fiatShamir ε :=
886+ _root_.Reduction.isHVZK.isStatHVZK
887+ ((hTransfer hHVZK).mono_relation hsub)
888+ ε
889+
890+ omit [VCVCompatible StmtIn] in
891+ /-- Basic Fiat-Shamir statistical HVZK can be restricted to a sub-relation and relaxed to a larger
892+ error budget after applying the stronger perfect transfer residual on the larger relation. -/
893+ theorem fiatShamir_isStatHVZK_of_transfer_mono_relation_error
894+ {τ : Type }
895+ (init : ProbComp σ) (impl : QueryImpl oSpec (StateT σ ProbComp))
896+ (fsInit : ProbComp τ)
897+ (fsImpl : QueryImpl (oSpec + fsChallengeOracle StmtIn pSpec) (StateT τ ProbComp))
898+ {rel relSub : Set (StmtIn × WitIn)} (hsub : relSub ⊆ rel) {ε₁ ε₂ : ℝ≥0 }
899+ (R : Reduction oSpec StmtIn WitIn StmtOut WitOut pSpec)
900+ (hTransfer : fiatShamir_hvzkTransferResidual init impl fsInit fsImpl rel R)
901+ (hle : ε₁ ≤ ε₂)
902+ (hHVZK : Reduction.isHVZK init impl rel R) :
903+ Reduction.isStatHVZK fsInit fsImpl relSub R.fiatShamir ε₂ :=
904+ (fiatShamir_isStatHVZK_of_transfer_mono_relation init impl fsInit fsImpl hsub ε₁ R
905+ hTransfer hHVZK).mono_error hle
906+
844907/-- If the Fiat-Shamir simulator-transfer residual is discharged at zero statistical error, then
845908basic Fiat-Shamir preserves perfect HVZK. This is only the zero-error API wrapper: the simulator
846909construction remains the content of `fiatShamir_statisticalHVZKTransferResidual`. -/
@@ -866,8 +929,12 @@ theorem fiatShamir_isHVZK_of_HVZK_zero
866929#print axioms Reduction.fiatShamir_isStatHVZK_of_HVZK_mono_relation
867930#print axioms Reduction.fiatShamir_isStatHVZK_of_HVZK_mono_relation_error
868931#print axioms Reduction.fiatShamir_hvzkTransferResidual
932+ #print axioms Reduction.fiatShamir_statisticalHVZKTransferResidual.of_perfectTransfer
869933#print axioms Reduction.fiatShamir_isHVZK_of_transfer
934+ #print axioms Reduction.fiatShamir_isStatHVZK_of_transfer
870935#print axioms Reduction.fiatShamir_isHVZK_of_transfer_mono_relation
936+ #print axioms Reduction.fiatShamir_isStatHVZK_of_transfer_mono_relation
937+ #print axioms Reduction.fiatShamir_isStatHVZK_of_transfer_mono_relation_error
871938#print axioms Reduction.fiatShamir_isHVZK_of_HVZK_zero
872939
873940end ZeroKnowledgeTransfer
0 commit comments