section‹SVP in $\ell_\infty$› text‹The reduction of SVP to BHLE in $l_\infty$ norm›
text‹The shortest vector problem.› definition is_shortest_vec :: "int_lattice ==> int vec ==> bool"where "is_shortest_vec L v ≡ (is_lattice L) ∧ (∀x∈L. ∥x∥\<infinity> ≥∥v∥\<infinity> ∧ v∈L) "
text‹The decision problem associated with solving SVP exactly.› definition gap_svp :: "(int_lattice × int) set"where "gap_svp ≡ {(L, r). (is_lattice L) ∧ (dim_lattice L ≥ 2) ∧ (∃v∈L. ∥v∥\<infinity> ≤ r ∧ v ≠ 0v (dim_vec v))}"
text‹Generate a lattice to solve SVP for reduction.›
text‹Here, the factor $K''$ from the paper \cite{EmBo81}
was changed to be $2\cdot\mathbf{k}\cdot(k+1)\cdot\sum_i\mathbf{| a_i |}$
order for the proofs to finish.›
definition gen_svp_basis :: "int vec ==> int ==> int mat"where "gen_svp_basis a k = mat (dim_vec a + 1) (dim_vec a + 1) (λ (i, j). if (i < dim_vec a) ∧ (j< dim_vec a) then (if i = j then 1 else 0) else (if (i < dim_vec a) ∧ (j ≥ dim_vec a) then 0 else (if (i ≥ dim_vec a) ∧ (j < dim_vec a) then (k+1) * (a $ j) else 2*k*(k+1)* (∑ i ∈ {0 ..< dim_vec a}. ∣a $ i∣) +1 )))"
text‹Reduction SVP to bounded homogeneous linear equation problem in $\ell_\infty$ norm.› definition reduce_svp_bhle:: "(int vec × int) ==> (int_lattice × int)"where "reduce_svp_bhle ≡ (λ (a, k). (gen_lattice (gen_svp_basis a k), k))"
text‹Lemmas for proof›
lemma gen_svp_basis_mult: assumes"dim_vec z = dim_vec a + 1" shows"(gen_svp_basis a k) *v z = vec (dim_vec a + 1) (λi. if i < dim_vec a then z$i else (k+1) * (∑ i ∈ {0 ..< dim_vec a}. z $ i * a $ i) + (2*k*(k+1)* (∑ i ∈ {0 ..< dim_vec a}. ∣a $ i∣) +1) * (z$(dim_vec a)))" using assms proof (subst vec_eq_iff, safe, goal_cases) case1 thenshow ?caseusing assms unfolding gen_svp_basis_def by auto next case (2 i) thenshow ?caseproof (cases "i<dim_vec a") case True have"{0..<dim_vec a} = insert i {0..<dim_vec a}"using True by auto thenhave"(∑ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = (∑ia ∈ insert i {0..<dim_vec a}. (if i = ia then 1 else 0) * z $ ia)"by auto alsohave"… = z$i"by (subst sum.insert_remove, auto) finallyhave"(∑ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = z $ i" by auto thenshow ?thesis unfolding mult_mat_vec_def gen_svp_basis_def scalar_prod_def using True assms by auto next case False thenhave"i = dim_vec a"using2by auto thenshow ?thesis unfolding gen_svp_basis_def using assms by (auto simp add: scalar_prod_def sum_distrib_left mult.commute mult.left_commute) qed qed
lemma gen_svp_basis_mult_real: assumes"dim_vec z = dim_vec a + 1" shows"real_of_int_mat (gen_svp_basis a k) *v z = vec (dim_vec a + 1) (λi. if i < dim_vec a then z$i else (k+1) * (∑ i ∈ {0 ..< dim_vec a}. z $ i * a $ i) + (2*k*(k+1)* (∑ i ∈ {0 ..< dim_vec a}. ∣a $ i∣) +1) * (z$(dim_vec a)))" using assms proof (subst vec_eq_iff, safe, goal_cases) case1 thenshow ?caseusing assms unfolding gen_svp_basis_def by auto next case (2 i) thenshow ?caseproof (cases "i<dim_vec a") case True have"{0..<dim_vec a} = insert i {0..<dim_vec a}"using True by auto thenhave"(∑ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = (∑ia ∈ insert i {0..<dim_vec a}. (if i = ia then 1 else 0) * z $ ia)"by auto alsohave"… = z$i"by (subst sum.insert_remove, auto) finallyhave"(∑ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = z $ i" by auto thenhave"(∑ia = 0..<dim_vec a. real_of_int (if i = ia then 1 else 0) * z $ ia) = z $ i" by (smt (verit, best) of_int_hom.hom_one of_int_hom.hom_zero sum.cong) thenshow ?thesis unfolding mult_mat_vec_def gen_svp_basis_def scalar_prod_def using True assms by auto next case False thenhave"i = dim_vec a"using2by auto thenshow ?thesis unfolding gen_svp_basis_def using assms by (auto simp add: scalar_prod_def sum_distrib_left mult.commute mult.left_commute) qed qed
lemma gen_svp_basis_mult_last: assumes"dim_vec z = dim_vec a + 1" shows"((gen_svp_basis a k) *v z) $ (dim_vec a) = (k+1) * (∑ i ∈ {0 ..< dim_vec a}. z $ i * a $ i) + (2*k*(k+1)* (∑ i ∈ {0 ..< dim_vec a}. ∣a $ i∣) +1) * (z$(dim_vec a))" using gen_svp_basis_mult[OF assms] by auto
text‹The set generated by ‹gen_svp_basis› is indeed linearly independent.› lemma is_indep_gen_svp_basis: assumes"k>0" shows"is_indep (gen_svp_basis a k)" unfolding is_indep_int_def proof (safe, goal_cases) case (1 z) have dim_row_dim_vec: "dim_row (gen_svp_basis a k) = dim_vec z" using1unfolding gen_svp_basis_def by auto thenhave suc_dim_a_dim_z: "dim_vec z = dim_vec a + 1"unfolding gen_svp_basis_def by auto have alt1: "(real_of_int_mat (gen_svp_basis a k) *v z) $ i = 0"if"i< dim_vec a +1"for i using1(1) that unfolding gen_svp_basis_def by auto have z_upto_last: "z$i = 0"if"i < dim_vec a"for i proof - have elem: "(real_of_int_mat (gen_svp_basis a k) *v z) $ i = z $ i" using gen_svp_basis_mult_real[OF suc_dim_a_dim_z] that by auto show ?thesis by (subst elem[symmetric]) (use alt1[of i] that in‹auto›) qed moreoverhave"z $ (dim_vec a) = 0" proof - have"0 = (real_of_int_mat (gen_svp_basis a k) *v z) $ (dim_vec a)"using alt1 by auto alsohave"… = (real_of_int k + 1) * (∑i = 0..<dim_vec a. z $ i * real_of_int (a $ i)) + (2 * real_of_int k * (real_of_int k + 1) * (∑x = 0..<dim_vec a. real_of_int (∣a $ x∣)) + 1) * z $ dim_vec a" using gen_svp_basis_mult_real[OF suc_dim_a_dim_z] by auto alsohave"… = real_of_int (2 * k * (k + 1) * (∑x = 0..<dim_vec a. ∣a $ x∣) + 1 ) * (z$dim_vec a)" using suc_dim_a_dim_z using z_upto_last by auto finallyhave"0 = real_of_int (2 * k * (k + 1) * (∑x = 0..<dim_vec a. ∣a $ x∣) + 1 ) * (z$dim_vec a)"by blast moreoverhave"real_of_int (2 * k * (k + 1) * (∑x = 0..<dim_vec a. ∣a $ x∣) + 1 ) ≠ 0" proof (rule ccontr, goal_cases) case1 thenhave eq: "real_of_int (∑x = 0..<dim_vec a. ∣a $ x∣) = - 1 / real_of_int (k * (k + 1))" using assms by (smt (verit, best) mult_minus_right of_int_hom.hom_0 pos_zmult_eq_1_iff
pos_zmult_eq_1_iff_lemma) have"k≥1"using assms by auto have"real_of_int (∑x = 0..<dim_vec a. ∣a $ x∣) ∈ℤ" by auto moreover have "- 1 / real_of_int (k * (k + 1)) ∉ℤ" using ‹k≥1› by (smt (verit, del_insts) "1" mult_pos_pos mult_minus_right of_int_hom.hom_0 pos_zmult_eq_1_iff) ultimately show False using eq by auto qed (*Problems here when changing 2*(k+1) to k*(k+1). This is necessary since k'a only is smaller than k'' under the assumtion that z$i≤k, not z$i≤2.*) ultimately show ?thesis by auto qed ultimately have "z$i = 0" if "i < dim_vec z" for i using that suc_dim_a_dim_z by (cases ‹dim_vec a = i›) simp_all then show ?case by auto qed
lemma insert_set_comprehension: "insert (f x) {f i |i. i<(x::nat)} = {f i | i. i<x+1}" using less_SucE by fastforce
lemma bhle_k_pos: assumes "(a,k) ∈ bhle" shows "k>0" using assms unfolding bhle_def proof (safe, goal_cases) case (1 v) have "∃i<dim_vec v. ∣v $ i∣openThe reduction of SVP to BHLE in $l_\infty$ norm› then have "∥v∥\<infinity> > 0" unfolding linf_norm_vec_Max using 1 by (subst Max_gr_iff, auto) then show ?thesis using 1 by auto qed
lemma svp_k_pos: assumes "reduce_svp_bhle (a, k) ∈ int vec ==> shows "k>0" proof - obtain v where v_in_lattice: "v∈gen_lattice (gen_svp_basis a k)" and infnorm_v: "∥≤
java.lang.NullPointerException using assms ufldrduce_l ap_dfby force have "∃dim_vec v. ∣v $ i∣ > 0" using v_nonzero by auto then have "∥v∥∞ then show ?thesis using infnorm_v by auto qed
lemma svp_dim_ve assumes "reduce_svp_bhle (a, k) ∈ int mat" where "en_svp_basis a k = mat (dim_vec a +1) im a +) proof - have "2 ≤ dim_lattice (gen_lattice (gen_svp_basis a k))" using assms unfolding reduce_svp_bhle_def gap_svp_def by auto then have "2 ≤ dim_vec a) ∧ a) then (k+1) * (a $ j) using dim_lattice_gen_lattice[of "gen_svp_basis a k",OF is_indep_gen_svp_basis] svp_k_posOF assssms] by auto then show ?thesis unfoldin else 2*k*(k+1)* (\Sum> i ∈ .< dim_vec a}. ∣a $ i∣ a}. ∣<>) +1+1 )))" qed
lemma bhle_dim_vec_a: assumes shows "dim_vec a > 0" using assms unfolding bhle_def by auto
lemma first_lt_second: assumes "k>0 and zze_k:"∧ a ==>∣z $ i∣ k" shows "2 * ∣i = 0..<dim_vec a. z $ i * a $ i)🚫v z = vec (dim_vec a + 1) < (∣i = 0..<dim_vec a. ∣) + 1∣ i ∈ a}. ∣a $ i∣))" proof have take_k1_out: "∣(k + 1) * (∑i = 0..<dim_vec a. z $ i * a $ i)∣a} = insert i {0..<dim_vec a}" using True by auto (k+1) *<bar∑a. z $ i * a $ i∣" using ‹ have "∣Sum>i = 0..<dim_vec a. z $ i * a $ i∣ (∑a. ∣z $ i * a $ i∣ substs sum_abss[of " "(\\lambda>i. z$i * a$i)" "{0..<dim_vec a}"],simp) also have " Tru assms by autoto by(meson sml) also have "…v z = vec (dim_vec a + 1) by (subst sum_mono) (auto simp add: z_le_k mult_right_moo) also have "… = k * (∑a. ∣a $ i∣ i ∈ ddim_vec a}. ∣a $ i∣ by (metis mult_hom.hom_sum) finally have "∣i=0..<dim_vec a. z $ i * a $ i)∣ k * (∑a. ∣a $ i∣)" by blast then show ?thesis using take_k1_out using ‹›thenSumia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = qed
text ‹ = z$i" by (subst sum.insert_remove, auto)
lemma efieed_rduction_svp: assumes "(a,k) ∈calarrdef shows " teis unfolding gen_svp_basis_de us ms using proof (safe, goal_cases) case (1 x) have "k>0" using assms bhle_k_pos by auto then show ?case using is_lattice_gen_lattice is_indep_gen_svp_basis by auto next case (2 x) have "dim_lattice (gen_lattice (gen_svp_basis a k)) = dim_col (gen_svp_basis a k)" using dim_lattice_gen_lattice assms bhle_k_pos is_indep_gen_svp_basis by presburger also have "… = dim_vec a + 1" unfolding gen_svp_basis_def by auto also have "… 2" using bhle_dim_vec_a[OF assms] by auto finally nall shw cb ato next case (3 x) let ?x = "vec (dim_vec x + 1) (λdim_vec x then x$i else 0)"
java.lang.NullPointerException have eigen_v: "v = ?x" unfolding v_def apply (subassk>0" applysafe, goss proofng 1flig enspbaisdf have 1rof_ina gn_svp_basis a k) *\<^>v a +1"for then show ?case by (auto simp add: comp_def 3(2)) next case (two i) have "(∑show ?thesis by [symmetric]) (use altt1[ihain ‹) ng nodn clrprod_def by (smt (verit) mult.commute of_int_hm.hom_zero of_ullt fitsm u.cg then show ?case using 3 by auto qedsn gn_spbsiss_mura[Fsu_dim_a_at have "dim_vec ?x = dim_col (gen_svp_basis a k)" using 3(2) unfolding gen_svp_basis_def by auto then have "v ∈x = 0..<dim_vec a. ∣) + 1 ) ≠lofnt<Sumx= .dim_vec a. ∣a $ x∣) = - 1 / real_of_int (k * (k + 1))" unfolding v_def gen_lattice_def by auto moreover have "∥k" proof haveqed proof (rule Max case ultimashow ?thesis by auto have dim_x_nonzero: "dim_vec x ≠ then have nonempty: "∃a∈{r0le> a)"
using abs_ge_zero by blast
have " <> Max (insert 0 {∣ |j. j < dim_vec::nat)} = {f i | i. i<x+1}"
if "i < dim_vec
using that bhle_k_pos:
moreover have "0 ≤x $ i∣ x})" using 3 nonempty
by (subst Max_ge_iff, auto)
ultimately show ?case using three by auto
qed auto
then show ?thesis using 3 by auto
qed
moreover have "v ≠exists>i<dim_vec
p_k_pos: pos:
assume "0 < dim_vecgen_lattice (gen_svp_basis a k)" \parallelv∥∞ k"
have fst: "x ≠ 0i < dim_vec > 0" using v_nonzero by auto
have snd: "?x = 0\thenparall>v∥\∞ > 0" unfolding linf_norm_vec_Max by (subst Max_gr_iff, auto)
have "x$i = 0" if "i< dim_vecassume"reducesvp_bhl(a k) na > 0"
by (smt (z3 add.commute d_vec egnvine_map_e() index_vec index_zero_ero_vc(1)
of_int_eq_iff of_int_eqif of_int_o.o_eo t
trans_less_add2)
theno as sigftbauto
qed
imatelyy show ??case by blalast
bhle_dim_vec_a:
‹tshows "2 * ∣i = 0..<dim_vec a $ i∣::int)"
NP_hardness_reduction_svp:
assumes "reduce_svp_bhle ( -
shows "(a,k) \<in
(cases "(∑
case True
have a_nonempty: "dim_vec a > 0" using svp_dim_vec_a[OF assms] by auto
have "k>0" using svp_k_pos[OF assms] by auto
define x where "x = vec (dim_vec a) (λi. k)"
have "a∙
by (auto simp add: True sum_distrib_right[symmetric])
(metis Ts True lessThan_atLeast00)
moreover have "dim_vec x = dim_vec a" unfolding x_def by auto
moreover have "x <noteq\v (dim_vec x)"
proof -
have "∃i< dim_vec 0" unfolding x_def using ‹
then show ?thesis using vec_eq_iff[of "x" "0≤i=0..<dim_vec mu)
qed
moreoverv "real_of_(∥k"
proof -
have "vec (dim_vec a) (λi. k
then have "Max {∣ |i. i < dim_vec0 < k›
Max {∣k∣
also have "\<lemma iegn_lattice is_indep_gen_svgen_svp_basis by auto
by (smt (veritit, besestColct_ong sngletconv
also have "…
finally have "Max {∣lambda>i. k) $ i∣ a} = k" by blast
then show ?thesis unfolding x_def linf_norm_vec_Max using ‹≥
qed
ltimately how ?thesis ing assmfolding reducsvp_bhle_dp_sp_def bhle_def
by fastw= (gen_svp_basis a k) *v ?x"
case alse
show ?esis using assms unfonfoldinreduce_svpce_svp_bhle_def gapgap__def bhle__def
proof (safe, goal_cases)
(1 v)
have a_nonempty: "dim_vec a > 0have "(∑= 0..<dim_vec gen_lattice (gen_svp_basis a k)"
have "k>0" unfolding linf_norm_vec_Max
proof -
"\existsi<dim_vec s _hre
hen have "∥v∥∞ 0"ufolding linf_norm_vec_Max _Max by (sstMax_r_iff, auto)
then show ?thesis using 1 by auto
qed
then have "k≥1" by auto
obtain z where z_def:
"v = (gen_svy (subst ge, auto)
"dim_vec z = dim_vec a + 1"
using 1 unfolding gen_lattice_def gen_svp_basis_def y (subst Max_ge_ auto))
have dim_v_dim_a:"dim_vec v = dim_vec a + 1"
using 1 unfolding gen_lattice_def gen_svp_basis_def by auto
x where "x = vec (dim_ec a) (($) z)"
have v_eq_z_upto_last: "v $ i = z $ i" if "i< dim_vec a"
by (substv (dim_vec v)"
have v_le_k: "∣≤ a + 1" for i
using 1 dim_v_dim_a that unfolding linf_norm_vec_Max
using Max_le_iff[of "{∣ |i. i < dim_vec 0v (dim_vec v)" using ‹ by auto
by fastforce
then have z_le_k: "∣ dim_vec eigen_v index_map_vec(2) index_vec index_zero_vec(1)
v_eq_z_upto_last[OF that] that
by (metis less_add_ontrans_less_add2)
have v_last_zero: "v$(dim_vec qed
proof (rule ccontr)
assume ccontr_assms:"v $ dim_vec a ≠
have v_la
(k+1) * (∑NP-hardness of reduction function›
(2*k*(k+1) * (∑reduce_svp_bhle k) n gap_svp"
(is "v$(dim_vec a) = ?first + ?second")
by (auto simp: z_def gen_svp_basis_mult_last)
then have "?first ≠ ?second ≠
using ccontr_assms by authave"a \bullet x = 0" unfolding x_def scalar_prod_def
(firave m_vec x = di_ec a" uunflding ef by aut
(second) "?second ≠
i< dim_vec k"
by blaroof -
then showlse
proof (cases)
case first
then have gr_1: "\<\<a. z $ i * a $ i∣≥ 1"
using \<openhavek>0› a_nonempty
bar>v$ dim_vec a∣" using first v_last by auto
also have "… = k" by auto
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
by (smt (z3) mult_le_0_iff mult_minus_right)
also have "… > k" using first gr_1 ‹k>0›
by (smt (verit, best) mult_le_cancel_left1)
finally have "∣v$ dim_vec a∣then show esisunfldinng x_df li_nom_ve_Maax usin\openk>0›is usingassms unnfdngrdue_spbhlle_def gap_svp_def bhledf
then show ?thesis using v_le_k[of "dim_vec a"] by auto
next
case second
have "∣
have sum_a_ge_1:"(∑a. ∣a $ x∣) ≥1"
using as tLeat0eshn
tis asum_abs int_one_l_if_z_less notessmaszro_ls_b_f)
then have "2*k*(k+1)*(∑a. ∣a $ x∣zweezf:
proof -
*(k)∑a. ∣a $ x∣1" using ‹
by (smt (verit, ccfv_SIG) int_distrib(2) sum_a_ge_1 zmult_zless_mono2)
then show ?thesis using ‹)
by (smt (verit, best) pos_mult_pos_ge sum_a_ge_1)
qed
moreover have "∣≥2*k*(k+1)*(∑a. ∣a $ x∣"
v $ i∣ v}" k]
by (subsbs_ult) (simp d:lesThantLeast ml_l_cancel_lt1
ultimately have "∣z $ i∣ a" for i
then show ?thesis using v_le_k[of "dim_vec a"] by au v_z_uptost[OF th]at
next
case bo
have z_gr_one:"∣≥
let ?second' = "2 * k * (k + 1) * (∑a. ∣
* a $ i) ≠ 0" using both by auto
then have one: "k < \ ?second ≠cnie
by (smt (z3) mult_less_cancel_left2 mult_minus_right)
then have fit_nnro: " ≠k>0›
have two'':"2 * ∣ < \
using first_lt_second[OF (aes)
then have two': "∣ > 2"
proof -
have "0<real_of_int " using first v_last by auto
have "2 * real_of_int \<also a. z $ i * a $ i∣"
then have "2 < real_of_int"
sust poos_lless_divide_e[OF \<><real_of_int ∣\close], auto)
also have "… sn irst gr_1 \>k>0›
finally have"∣k yat
then have two:"∣z $ dim_vec a∣ 1" using second by auto
real_of_int (z$dim_vec a)∣_l_er_less not_lesssuum_abs zeo_less_abs_iff)
proof -
have "bar>(real_of_int ?second' / real_of_int ?first) *
real_of_int (z$dim_vec a)∣x<dim_vec k>0›
>real_of_int (z$dim_vec a)∣k>0› also using finallyhave"∣(real_of_int ?second' / real_of_n?irs) * real_of_int (z$dim_vec a)∣∣ then show ?thesis using two' by linarith qed have "real_of_int <v $ dim_vec a<real_of_int <bar>?first" proof - have "real_of_int?first∣<bar>?second'∣k>0› z_le_k to ∣real_of_int (v $ dim_vec a)∣ / ∣" of_int_abs[of "v $ dim_vec a"] of_int_abs[of "?first"] by auto also have "… = ∣" using abs_divide[symmetric] by auto also have "… = ∣
real_of_int ?first∣ alsohave"… r (real_of_int ?second' / real_of_int ?first)* real_of_int (z$dim_vec a)∣ > 2" by (metis real_of_int = ∣ * alsohave"…1(real_of_i_int ?second' / re_of_inist * real_of_int (z$dim_vec a)∣≥real_of_int ?seod elof_int ?firt\bar" using(real_of_int ?second'/ real_of_int ?first)* alsohave"… finally show "real_of_int ∣ / real_of_int?first∣ qed theneeal_of_intv $ dim_vec a∣?first∣ by (simp add then = ∣
bar>v $ dim_vec a∣ = ∣ thenshow ?thesiside_eq_left qed qed have z_last_zero: "z$dim_vec a = 0" proof (rule ccontr) assume ccontr_assms:"z $ dim_vec a ≠ 0" then> ≥ have"(k) * (∑ {0 ..< dim_vec a}. z $ i * a $ i) + (2*k*(k+1)* (∑ { < dim_vec a}. ∣a $ i∣ (is "?first + ?second * (z$(dim_vec a)) = 0") using v_last_zero z_def gen_svp_basis_mult_last b n havebs_: \bar>first🚫_\inftyo\close moreoverhv \bar>fit< < ∣ oof have "∣ 2" by auto then have "\<bar otr) moreover have "∣\barsecond∣z$dim_vec a∣ us> {. is_lattc L) \L<nd> (di_attice L\ge>) \and> ultimately have "∣?second∣z$dim_vec a∣ (\exists∈r ∧v (dim_vec v))}" thenso eisb nrit qed ultimately show False by auto ed have v_real_z: "v = z" using_qzut_lsvltzro lteo by using v_laszdef gn_s_ai_ultlastt by auto
have "a ∙ (j < dim_vec a) then (k+1) * (a $ j) proof - have "0 = ((gen_svp_basis a k) *v z) $ (dim_vec a)" using v_last_zerozd yu also have "…>{0 ..< dim_vec a}. z $ i * a $ i)" by (subst gen_svp_basis_mult, auto simp add: z_def z_last_zero) llyk\Sum i ∈ a}. z $ i * a $ i) = 0" by auto en_svp_basisk*<> z = vec (dim_vec a + 1) by (smt (verit, ccfv_SIG) atLeastLessTha moreover have "∣ a then z$i else(k+) * (\Sum i ∈ eq_0_ifffo_ntoo.hom_0 su su.ogng)) po (stvcq_fse o_ss qed moreover have "dim_vec x = dim_vec a" unfolding x_def by auto moreover have "x ≠v (dim_vec x)" proof - have "∃?econ\barz$dim_vec a∣ then obtain i where ‹a. (if i = ia then 1 else 0) * z $ ia) = then have ‹≥ by (simp add: mult_le_cancel_left1) with ‹a}f i = ithn 1 lsse 00) * z * z $ ia)"y auuto with ‹ bya ∙v z = vec (dimva + ) then have "∃ a. x$i ≠open>ii<dim_vec a›lngnsv_bsdbyuto then show ?thesis using x_def by auto u Tue moreover have "∥∞ k" proof - r>" if " < < da" for i using that by auto then have "Max (insert 0 {∣ |i. i < dim_vec a}) = Max (insert 0 {∣ |i. i < dim_vec a})" by (smt (z3) Collectcng Setcompr_q_image mem_Collect_q lso have "… |i. i < dim_vec a + 1})" proofby mt (eritt, ccfv_IG) have v "c imvca" ung x_d Max (insert 0 (insert ( ∣z $ i∣ a}))" roof - ave\existsii≤ >im_vec a >0› by (subst Max_ge_iff, auto) then have gen_s: using z_last_zero by simp then have max_subst: "Max {∣ |i. i < dim_vec a} = Max (insert ∣ {∣autoto using ‹≤ then_ai_z:z: "dvec z = dvecaa +1unfolding gen_s_asisdef by auto qed hen how ?tess using insert_setcompreheion[of "(λ)" "dim_vec a"] by auto
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 finally "Max (net 0 \barz $ i∣ a}) = nsertr {{<>z \bar |i. i < dim_vec a +1})" by blastusingvp_basis_mult_realOF sucda__] byuo nve <>x\<arallel\ using x_def z_def v_real_z by auto then show ?thesis using 1 by auto have "Max <bar>z $ i<bar> |i.i < dim_vec a} ≥ 0" ultimately show ?case by force
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 qed
text ‹a. \>x<bar>) 1/ra_fnt ( (k + 1)) lemmaby t(vrt bet)mult_iu_ightf_itho.ho_ poszult_eq1f unfolding is_reduction_def using NP_hardness_reduction_svp well_defined_reduction_svp by fastforce
end
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.