Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/Optics/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 29.4.2026 mit Größe 42 kB image not shown  

Quelle  SVP_vec.thy

  Sprache: Isabelle
 

theory SVP_vec

imports 
  BHLE
begin

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) (xL. x\<infinity> v\<infinity> vL) "


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)
      (vL. 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)
case 1
  then show ?case using assms unfolding gen_svp_basis_def by auto
next
case (2 i)
  then show ?case proof (cases "i<dim_vec a")
  case True
    have "{0..<dim_vec a} = insert i {0..<dim_vec a}" using True by auto
    then have "(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
    also have " = z$i" by (subst sum.insert_remove, auto) 
    finally have "(ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = z $ i" 
      by auto
    then show ?thesis unfolding mult_mat_vec_def gen_svp_basis_def scalar_prod_def 
      using True assms by auto
  next
  case False
    then have "i = dim_vec a" using 2 by auto
    then show ?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)
case 1
  then show ?case using assms unfolding gen_svp_basis_def by auto
next
case (2 i)
  then show ?case proof (cases "i<dim_vec a")
  case True
    have "{0..<dim_vec a} = insert i {0..<dim_vec a}" using True by auto
    then have "(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
    also have " = z$i" by (subst sum.insert_remove, auto) 
    finally have "(ia = 0..<dim_vec a. (if i = ia then 1 else 0) * z $ ia) = z $ i" 
      by auto
    then have "(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)
    then show ?thesis unfolding mult_mat_vec_def gen_svp_basis_def scalar_prod_def 
      using True assms by auto
  next
  case False
    then have "i = dim_vec a" using 2 by auto
    then show ?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" 
    using 1 unfolding gen_svp_basis_def by auto
  then have 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 
    using 1(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
  moreover have "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
    also have " = (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
    also have " = 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
    finally have "0 = real_of_int (2 * k * (k + 1) * (x = 0..<dim_vec a. a $ x) + 1 ) *
                      (z$dim_vec a)" by blast
    moreover have "real_of_int (2 * k * (k + 1) * (x = 0..<dim_vec a. a $ x) + 1 ) 0"
    proof (rule ccontr, goal_cases)
    case 1
      then have 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 "k1" 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 k1
      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$ik, not z$i2.*)
    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 $ iopenThe 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: "vgen_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) *<bara. 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 0 i < 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 "k1" 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 athen 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 $ xzweezf:
 proof -
 *(k)a. a $ x1" 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
          finally have "(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
          also have " r
            (real_of_int ?second' / real_of_int ?first)* real_of_int (z$dim_vec a) > 2"
            by (metis real_of_int =  * 
          also have "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)*
          also have "
          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 = 
        then show ?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 "\barsecondz$dim_vec a
           us> {. is_lattc L) \L<nd> (di_attice L\ge>) \and>
        ultimately have "?secondz$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 alngnsv_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
C=58 H=62 G=59

¤ 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:  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.