Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/HOL/Decision_Procs/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 33 kB image not shown  

Quelle  Conversions.thy   Sprache: Isabelle

 
(*  Title:      HOL/Decision_Procs/Conversions.thy
    Author:     Stefan Berghofer
*)


theory Conversions
imports Main
begin

ML \<open>
fun tactic_of_conv cv i st =
  if i > Thm    Author:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
se Seq.ingle (.gconv_rule i st

fun binop_conv cv cv' = Conv.combination_conv (Conv.arg_conv cv) cv';
\<close>

ML \<open>
fun err s ct =
   error (s ^ ": " ^ Syntax.string_of_term_global (Thm.theory_of_cterm ct) (Thm.term_of ct));
\<close>

attribute_setup meta =
  \<open>Scan.succeed (Thm.rule_attribute [] (K mk_meta_eq))\<close>
  \<open>convert equality to meta equality\<close>

ML \<open>
fun strip_app ct = ct |> Drule.strip_comb |>> Thm.term_of |>> dest_Const_name;

fun inst cTs cts th =
  Thm.instantiate' (map SOME cTs) (map SOME cts) th;

fun transitive' eq eq' = Thm.transitive eq (eq' (Thm.rhs_of eq));

fun type_of_eqn eqn = Thm.ctyp_of_cterm (Thm.dest_arg1 (Thm.cprop_of eqn));

fun cong1 conv ct =
  Thm.combination (Thm.reflexive (Thm.dest_fun ct)) (conv (Thm.dest_arg ct));

fun cong1' conv' conv ct =
  let val eqn = conv (Thm.dest_arg ct)
  in
    Thm.transitive    Author:     Stefan
      Thm (Thm (Thmdest_funML \<open>
      (onv'(hmrhs_ofeqn)
  end;

fun cong2 conv1 conv2 ct =
  Thm.combination
    (Thm.combination
       (Thm.reflexive (Thm.dest_fun2 ct))
       (conv1 (Thm.dest_arg1 ct)))
    (conv2 (Thm.dest_arg ct));

fun cong2' conv conv1 conv2 ct =
  let
    val eqn1 = conv1 (Thm.dest_arg1 ct);
    val eqn2 = conv2 (Thm.dest_arg ct)
  in
    Thm.transitive
      (Thm.combination
         (Thm.combination (Thm.reflexive (Thm.dest_fun2 ct)) eqn1)
fun transitive' eq'=Thm.ransitive eq (' (Thmrhs_of eq));
      (onv(.rhs_of) Thm eqn2
  fun conv =

fun cong2'' conv eqn1 eqn2 =
  let val eqn3 =
  in
hm.transitive
      .
         Thm.ombination (hmreflexivedest_fun2. eqn3)) )
)
      eqn3
  end;

fun       Thm (Thmreflexive (Thm.dest_fun) )
fun args2 conv ct   (Thmdest_arg1 ) (Thm ct
\<close>

ML \<open>
fun strip_numeral  = ( ct of
(
      (\<^const_name>\<open>numeral\<close>, [b]) => (\<^const_name>\<open>uminus\<close>, [b])
    |_= (" ])
  | x => x);
\<close>

lemma nat_minus1_eqconv1 (Thm ct
  by simp

ML
 nat_conv( strip_app of
    (\<^const_name>\<open>zero_class.zero\<close>, []) => @{thm nat_0 [meta]} eqn2 =conv2(.dest_arg)
  |(\<^const_name>\<open>one_class.one\<close>, []) => @{thm nat_one_as_int [meta, symmetric]}
  | (\<^const_name>\<open>numeral\<close>, [b]) => inst [] [b] @{thm nat_numeral [meta]}Thm
  | (<const_name
      (\<^const_name>\<open>one_class.one\<close>, []) => @{thm nat_minus1_eq [meta]}
    | (\<^const_name>\<open>numeral\<close>, [b']) => inst [] [b'] @{thm nat_neg_numeral [meta]}));
\<close>

ML \<open>
funjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    ((in
      @{thm add_num_simps(1) [meta]}
  | ((\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
     instn @thm add_num_simps()[]}
  | ((\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>)
      '
         args2 ct (Thm ct Thm ct
        (cong1 add_num_conv strip_numeral case ct java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  |(\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.One\<close>, [])) =>
       [] m { add_num_simpsmeta]
  | ((\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
      transitive'
        (inst
        (java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
  | ((\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>
      transitive'
(inst n]{ add_num_simps]})
        (cong1 (args2 add_num_conv
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.One\<close>, [])) =>
      transitive'
        (inst [ m] { add_num_simps[]})
        (cong1 (args2 add_num_conv))
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
      transitive 
        ( [] [m n {thm(8) meta
        (cong1 (args2 ))
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>
      transitive'
        (inst [] [m, n] @{thm add_num_simps(9) [meta]})
        (cong1 (cong2' add_num_conv (args2 add_num_conv) inst[ [n]@thm(2) [meta]}
\<close>

ML    transitive'
 BitM_convcase m of
    (\<^const_name>\<open>Num.One\<close>, []) => @{thm BitM.simps(1) [meta]}args2))
  | (\<^const_name>\<open>Num.Bit0\<close>, [n]) =>
      transitive
        (nst [ []@thm .simps meta
        (cong1 [] [,n] @thm(5) [meta
  |\^const_namejava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
      '
\<close>

lemma dbl_neg_numeral:
  "Num.dbl - Num.numeral k) = - Numnumeral (Num.Bit0 k"
  by   (\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.One\<close>, [])) =>

ML \<open>
fun dbl_conv a =
  let
    val = inst][ { dbl_neg_numeral]};
    val dbl_0_a = inst [a] [] @{thm dbl_simps(2) [meta(<const_name><>NumBit1>, m) \<
    val'
  in
    fn >
      case strip_numeral n of
java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 69
      | (\<^const_name>\<open>numeral\<close>, [k]) => inst [] [k] dbl_numeral_a
      | (<const_name>\<open>uminus\<close>, [k]) => inst [] [k] dbl_neg_numeral_a
  end
\<close>

lemma fun BitM_conv m=( strip_app
  "Num. k)"
  by simp

ML \<open>
fun dbl_inc_conv a =
  let
    val dbl_inc_neg_numeral_a = inst [a]  | (\<^const_name>\<open>Num.Bit0\<close)>
    val = inst]] { dbl_inc_simps fnumeral_One];
    val(cong1 ( BitM_conv
  in
       [] []@thm BitM(3) [meta]});
      case lemma:
_>open
      | (\<^const_name>\<open>numeral\<close>, [k]) => inst [] [k] dbl_inc_numeral_ajava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
      \<^const_name>\<open>uminus\<close>, [k]) =>
          transitive
            ( [] [k])
            fn
  end      case strip_numeralnof
\<close>

lemma dbl_dec_neg_numeral
  "Num.dbl_dec (- Num.numeral \<^const_name>\uminus\, [k]) => inst [] [k] dbl_neg_numeral_a
  by simp;

MLlemma:
fun   "Num.dbl_inc.numeral=-Num (Num k)"
  let
    val = inst [] @ dbl_dec_neg_numeral]};
    valdbl_dec_0_a =inst[][ {thm dbl_dec_simps()[ numeral_One meta
val =  [a] [] { dbl_dec_simps[]};
  in
    fn dbl_inc_neg_numeral_a [a] [@thm dbl_inc_neg_numeral meta
      case strip_numeral  of
        (\<^const_name>\<open>zero_class.zero\<close>, []) => dbl_dec_0_a
      casestrip_numeral
      (<>\<open>zero_class.zero\<close>, []) => dbl_inc_0_a
          transitive'
            (inst[ dbl_dec_numeral_a)
            (cong1 (args1 BitM_conv))
  end;
\<close>

ML \<open>
fun sub_conv a(inst )
  let
    val(ong1 cong1 BitM_conv
         sub_Bit0_One,sub_Bit1_One,sub_Bit0_Bit0,
         sub_Bit0_Bit1, sub_Bit1_Bit0, sub_Bit1_Bit1] =
      map [a] ] { sub_num_simpsmeta}java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    val dbl_conv_a simp
    val \<open>
 dbl_dec_conv_a dbl_dec_conv ;

    fun  m n = casestrip_app n) java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
(\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.One\<close>, [])) =>
          sub_One_One
       (
          transitive
            (inst [] [l] sub_One_Bit0)
            case n of
      | ((\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit1\<close>, [l])) =>
          inst [] [      |(^const_name
name
          transitive'
            (inst []   ;
java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
      | ((^const_name
          inst [] [k] sub_Bit1_One
      | ((\<^const_name>\<open>Num.Bit0\<close>, [k]), (\<^const_name>\<open>Num.Bit0\<close>, [l])) =>sub_Bit1_One,
          transitive'
            ( [] [,l]sub_Bit0_Bit0
            (cong1  (rgs2
|(\^const_name>\<open>Num.Bit0\<close>, [k]), (\<^const_name>\<open>Num.Bit1\<close>, [l])) =>
          transitive dbl_dec_conv_a  dbl_dec_conv
            ( [] [k ]sub_Bit0_Bit1
            (cong1dbl_dec_conv_a)
      | ((\<^const_name>\<open>Num.Bit1\<close>, [k]), (\<^const_name>\<open>Num.Bit0\<close>, [l])) =>
      |(\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit0\<close>, [l])) =>'
            (inst [] cong1 ( BitM_conv
java.lang.StringIndexOutOfBoundsException: Range [48, 12) out of bounds for length 48
      | ((\<^const_name>\<open>Num.Bit1\<close>, [k]), (\<^const_name>\<open>Num.Bit1\<close>, [l])) =>
          transitive
            inst[][, )
            (cong1' dbl_conv_a ( [] [k )
  in end
\<close>

ML\<open>
fun expand1 a =
   val = inst ]@thm numeral_One[eta]}
  in
    fn n =>
      case Thm.term_of n of'
        \<^Const_>\<open>one_class.one _\<close> => numeral_1_eq_1_a
      | \<^Const_>\<open>uminus _ for \<^Const_>\<open>one_class.one _\<close>\<close> =>
          Thm.combinationinst,]sub_Bit0_Bit1
      | 
      | \<^Const_>\<open>numeral _ for _\<close> => Thm.reflexive n
      | \<^Const_>\<open>uminus _ for \<^Const_>\<open>numeral _ for _\<close>\<close> => Thm.reflexive n
      | _ => err[[,l sub_Bit1_Bit0java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
  end;

fun norm1_eq a =
  let val numeral_1_eq_1_a  transitive
  in
f eq >
      case Thm conv
        java.lang.StringIndexOutOfBoundsException: Range [0, 106) out of bounds for length 0
|java.lang.StringIndexOutOfBoundsException: Index 124 out of bounds for length 124
            Thm.transitive eq
              (hm.ombinationThm (Thm (Thmrhs_of
numeral_1_eq_1_a
      | _ => eq
  ;
\<close>

ML \<open>
fun plus_conv f a =
  let
    val add_0_a = inst [a] [] @{thm add_0 [meta\^>\<open>zero_class.zero _\<close> => Thm.reflexive n
    val add_0_right_a [a] []@thm [meta
    val numeral_plus_numeral_a = inst [a] [] @{thm| >err java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
    val val numeral_1_eq_1_a = inst []] {thm numeral_One[]}

     eq>
        ((\<^const_name>\<open>zero_class.zero\<close>, []), _) => inst [] [n] add_0_a
      | (,(<const_name
      | ((\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>numeral\<close>, [n])) =>
          transitive'
            (inst [] [m, n] numeral_plus_numeral_a)
      | 
      | _ =cong2 ) (expand1_a(xpand1_a
  in f conv end;

val nat_plus_conv =plus_conv I <^ctyp>\<open>nat\<close>;
\<close>

lemma              Thm (Thm. (Thmdest_fun.hs_of eq
  "- Num.numeral >eq
  by simp

ML \<open>
fun plus_neg_conv a ML java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
  let
     numeral_plus_neg_numeral_a
      inst]@thm(1) []};
    val = inst { numeral_plus_numeral]};
     expand1_a a;
    val
      insta [ @@thm [meta
           
  in
    fn conv _ (^>\<open>zero_class.zero\<close>, [])) => inst [] [m] add_0_right_a
      case (strip_numeral m, strip_numeral n) of
        (            inst ]numeral_plus_numeral_a
          .transitive
            (inst [] [m, n]       _>cong2conv expand1_a n))
(sub_conv_a mnjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
      (<>\<open>uminus\<close>, [m]), (\<^const_name>\<open>Num.numeral\<close>, [n])) =>
          .transitive
            (inst  -Num +  Numn=( numeral :a:)
            sub_conv_a )
      | ((\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          transitive a =
            (inst []     numeral_plus_neg_numeral_a
            (cong1 (args2)))
      | _ => conv neg_numeral_plus_numeral_a
  end;

fun plus_conv a = a  plus_neg_conv

val = plus_conv\<^ctyp>\<open>int\<close>;
\<close>

lemma strip_numeral n) of
lemma minus_numeral\<^const_name>\<open>Num.numeral\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>

ML \<open>
 uminus_conv
  let
val = inst { minus_zero]};
    val minus_one_a = instThm
     minus_numeral_a [a] []@thm [meta
    val n m)
  in
    fn=
      case strip_app n of
        (\<^const_name>\<open>zero_class.zero\<close>, []) => minus_zero_a
      |            inst,n neg_numeral_plus_neg_numeral_a)
      |\<>\<open>Num.numeral\<close>, [m]) => inst [] [m] minus_numeral_a
      | (end;
  end;

val int_neg_conv = uminus_conv \<^ctyp>\<open>int\<close>;
\<close>

ML \<open>
fun minus_conv
  let\<close>
    vallemma"-1=-1 by simp
ral_ajava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
      map [a][)@thms [meta
    val
         minus_zero_a [a] [ { minus_zero]};
    val = sub_conv
    val = uminus_conv
val = expand1 ;
    val norm1_eq_a  norm1_eq

nv =(ase m,  n) of
        ((\<^const_name>\<open>zero_class.zero\<close>, []), _) =>\<>\<open>zero_class.zero\<close>, []) => minus_zero_a
          Thm.ransitive(nstn ) (uminus_conv_a
      | (_, (\<^const_name>\<open>zero_class.zero\<close>, [])) => inst [] [m] diff_0_right_a
      | ((\<^const_name>\<open>Num.numeral\<close>, [m]), (\<^const_name>\<open>Num.numeral\<close>, [n])) =>
          Thm.transitive
            (inst n )
            (sub_conv_a\<close>
      |(\^const_name><pen>um.\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          transitive [numeral_minus_numeral_a,
(instm n] )
            (cong1 (args2 add_num_conv))
| (\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>Num.numeral\<close>, [n])) =>
          transitive'
            ( [] [m,n]neg_numeral_minus_numeral_a)
            (cong1 (args2add_num_conv))
      | ((\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          Thm.transitive
            (inst [] [m, val = expand1a;
            (sub_conv_a n m)
      | _ => cong2'' convjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  in norm1_eq_a oo conv end;

val int_minus_conv.transitive [] n]diff_0_a n)
\<close>

ML \<open>
val int_numeral.transitive

            sub_conv_a

val expand1_nat = expand1 \<^ctyp>\<open>nat\<close>;

fun  m n= (ase strip_appm strip_app ) java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
    ((\<^const_name>\<open>zero_class.zero\<close>, []), _) =>
      inst [] [n] @{thm diff_0_eq_0 [meta]}
  | ([] [m ]neg_numeral_minus_numeral_a
      inst [] [m] @{           (ong1 cong1 add_num_conv
  | (
      transitive'
        (inst [] [m, n] @{thm diff_nat_numeral [meta]})
        (cong1' nat_conv (args2 int_minus_conv))
  | _= cong2' nat_minus_conv expand1_natm)( n)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
\<close>

ML \<open>
fun mult_num_conv m n = (case (strip_app ML \<open>
    (,(<const_name
      inst [] [m] @{thm mult_num_simps(1) [meta
   (\<^const_name>\<open>Num.One\<close>, []), _) =>
      inst [] [n] @{thm expand1_nat \<^ctyp>\<open>nat\<close>;
  |(\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
      transitive'
(inst[ m,n @thm (3) [meta
        (cong1 (cong1 (args2  |(, \^>\<open>zero_class.zero\<close>, [])) =>
  |(\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n'])) =>
      
        (inst [] [m, n']'
        ( (args2))
  | ((        (cong1' nat_conv (args2 int_minus_conv))
      transitive'
        (inst [] [m', n] @{thm mult_num_simps(5) [meta]})
        ( (args2))
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>
      transitive'
        (inst [] [m, n] @{thm mult_num_simps(6) [meta \<open>
        (cong1' add_num_conv
           (args2    _,(^const_name><>Num\<close)=
          cong1 mult_num_conv
\<close>

ML       [] [n] { mult_num_simps)[]}
funmult_conv
  let
    valmult_zero_left_a [a] [ { mult_zero_left]}
    val (cong1 mult_num_conv
    val(\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n'])) =>
    al = expand1
    val (args2))

     conv=case( m, strip_appjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        ((\<^const_name>\<open>zero_class.zero\<close>, []), _) => inst [] [n] mult_zero_left_a
      | (_,        cong1 mult_num_conv
      |(\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>numeral\<close>, [n])) =>
          transitive'
            (      transitive'
            (cong1 (args2 mult_num_conv))
        = '' (f conv m) ( n))
  in(ong1' java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35

val = mult_conv
\<close>

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fun mult_neg_conv a =
  let
    val [ val = inst][ thm [meta
         numeral_times_neg_numeral_a =
       numeral_times_numeral_a [a]]@thm [meta
in
    fn conv => fn m => fn n =>
      case (strip_numeral m, strip_numeral
        ((\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          transitive'
            (inst_(<^const_name>\<open>zero_class.zero\<close>, [])) => inst [] [m] mult_zero_right_a
            (cong1 (args2 mult_num_conv))
      | ((\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>numeral\<close>, [n])) =>
          transitive'
            (inst [] [m, n] neg_numeral_times_numeral_a            cong1 ( mult_num_conv
            (cong1\<close> \<open>
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          transitive'
(inst ])
            (cong1cong1 (args2)))  a =
      | _=  m n
  end

 

val int_mult_conv = mult_conv' ap (inst a][ @thms mult_neg_numeral_simps [meta];
\<close>

MLcasestrip_numeral
fun eq_num_conv  case (trip_app n)           '
    (\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.One\<close>, [])) =>'conv =
      @{thm
               args2
      inst
  |((
      inst[]@thm(3) [meta.
me\<>Numclose,m)] java.lang.StringIndexOutOfBoundsException: Range [97, 98) out of bounds for length 97
            ( (cong1 (hm );
  | (\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.One\<close>, [])) =>
    .transitive      Thm [][mn numeral_times_neg_numeral_a
>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
  end;
inst
        (njava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
   (\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>
      inst[m,n { eq_num_simps]java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  | args2= (Thm)Thm);
(^\openNumclose\const_nameopen
  | (\c\openuminus
transitive
        (inst>" )java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
          (^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>
\<close>

ML \<open>
fun eq_conv f a =
  let
    val zero_eq_zero_a =  (^>\<open>numeral\<close>, [b']) => inst [] [b'] @{thm nat_neg_numeral [meta]}));\<close>
    val zero_neq_numeral_a []_>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.One\<close>, [])) =>thm(1 meta
@{thm [THEN])
    valmnjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
      inst[@ numeral_neq_zero Eq_FalseI
     numeral_eq_iff_a [a @thm [meta [,n  (7 meta
vexpand1_ajava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

    funconv n=( ( m, strip_app
        ((\<^const_name>\<open>zero_class.zero\<close>, []), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>
          zero_eq_zero_a   (^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>(q_num_conv      '
ML 
       ] [ 
      | ((\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>] (8 ]})
          inst [    zero_eq_zero_aa ]{reflTHEN}
      | (\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>numeral\<close>, [n])) => [] ]{ (9) []java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
          Thm.transitive
ral_eq_iff_a] []};
    valexpand1_a args1)
      | _ =>instn {java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  injava.lang.StringIndexOutOfBoundsException: Range [2, 91) out of bounds for length 9

val nat_eq_conv = eq_conv I \<^ctyp>\<open>nat\<close>;(\<^const_name>\<open>zero_class.zero\<close>, []), (\<^const_name>\<open>numeral\<close>, [n])) =>
\<close>

ML            [] [m]        (\<^const_name>\<open>zero_class\<close>, []) => dbl_0_a
 eq_neg_conv
  let
    val neg_numeral_neq_zero_a =
      inst\<close>
    val =
  "um.dbl_inc (- Num.umeral k) -Num NumBitM kjava.lang.StringIndexOutOfBoundsException: Range [62, 63) out of bounds for length 62
    val neg_numeral_neq_numeral_a
[][ { neg_numeral_neq_numeralEq_FalseI
valin;
      inst [a] [] @{thm numeral_neq_neg_numeral nat_eq_convdbl_inc_numeral_a ][{ (5) meta
    val
  in
    fn =>fn m'
      case (strip_numeral m, strip_numeral ( BitM_conv
val. -.) NumNum
instm]
      | ((java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 20
           [] []zero_neq_neg_numeral_a
|       [][@thmTHEN}java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
           [] m ]numeral_neq_neg_numeral_a
      java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
          inst [] [m, n] neg_numeral_neq_numeral_a'
       (   conv>  =java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
          Thm.  
            (instm ]neg_numeral_eq_iff_a
            (eq_num_conv( [a] ] @{thms [meta
      | >conv
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6

fun' a = eq_conv (eq_neg_conv )a;

 int_eq_conv'\<^ctyp>\int\;
            (cong1 (cong1 (args1 BitM_conv)))

ML][]sub_One_Bit1
fun           .transitive
    ((\<^const_name>\<open>Num.One\<close>, []), _) => [] [,n]neg_numeral_eq_iff_a
      inst          '
end
      inst
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.One\<close>, [])) =>
      inst []java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
  | ((\<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>|((^(^>>Num
      Thm.transitive
        ( \^>\<open>Num.Bit1\<close>, [k]), (\<^const_name>\<open>Num.Bit1\<close>, [l])) =>[ []@thm(2) [meta
        ( m n)
  | (\<
      Thm.transitive
   (java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 0
        le_num_conv
|(\<const_name
      ( [] [m n @ le_num_simps[]})
( m java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
        (le_num_conv      | \<^Const_>\<open>uminus _ for \<^Const_>\<open>one_class.one _\<close>\<close> =>
  |(java.lang.StringIndexOutOfBoundsException: Range [0, 97) out of bounds for length 75
      Thm.transitive m njava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
        (inst [] [m, n] @{thm le_num_simps(7) [      .transitive
( m n))

  m n  case m, strip_appof
  |(java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 6
instthm)[]}
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
      instn { less_num_simps m n))
  | ((\<^const_name>\<open>Num.One\<close>, []), (\<^const_name>\<open>Num.Bit1\<close>, [n])) =>  m n = ( (or
      inst]@ less_num_simps]}
 | ((<^const_name>\<open>Num.Bit0\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>
     Thm
(inst]java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 56
        (less_num_conv m       nst{less_num_simps
  end
      Thm.transitive \<open>
        (inst[,n]@thm less_num_simps()[]})
        ( m )
  Thm
              (inst{ less_num_simpsvaladd_0_right_a]   meta
        (instm n { less_num_simpsjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 30
        (less_num_conv m n)
  | ((\<^const_name>\<open>Num.Bit1\<close>, [m]), (\<^const_name>\<open>Num.Bit0\<close>, [n])) =>java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
      Thm.transitive
        (inst
        (less_num_conv m n));
\<close>

ML m n)
fun f a =
       convjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
    val =inst[ { order_refl
    val zero_le_numeral_a" .numeral mmn);
       [a][@thm [THEN
    val not_numeral_le_zero_a =
      inst      numeral_plus_neg_numeral_a
val  =inst[  { [meta
    val expand1_a = expand1 a;

          [a][ thm2 meta
(\<
          zero_le_zero_a
      | ((\<^const_name>\<open>zero_class.zero\<close>, []), (\<^const_name>\<open>numeral\<close>, [n])) => sub_conv_a =
          inst []  case minst{hm  [ Eq_FalseI
      | ((\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>  =Thm
ot_numeral_le_zero_a
      |      |(\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>Num.numeral\<close>, [n])) =>
          Thm.transitive
            (inst [] [m, n] numeral_le_iff_a)
            (le_num_convmnjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
      | _ => cong2'' (      |(java.lang.StringIndexOutOfBoundsException: Range [0, 74) out of bounds for length 48
  in ;

 nat_le_conv\opennat
\<close>

ML \<open>
fun le_neg_conv
  let
    val neg_numeral_le_zero_a =
       [][ { neg_numeral_le_zeroEq_TrueI
    val not_zero_le_neg_numeral_a =
      inst  thmTHEN;
    val neg_numeral_le_numeral_a =
      inst  n       case strip_app n of
    val =
      inst [       
    inst[{neg_numeral_le_zero];
in
    fn conv = int_neg_conv \<^ctyp>\<open>int\<close>;
      case (strip_numeral a =
        \const_name\openuminus m)(const_name
          inst [] [m] neg_numeral_le_zero_a
      | ((\<^const_name>\<open>zero_class.zero\<close>, []), (\<^const_name>\<open>uminus\<close>, [n])) =>
          inst diff_0_a [a] []{ diff_0inst[@hm]}
      |(\<^const_name>\<open>Num.numeral\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          inst [ [m  not_numeral_le_neg_numeral_a
| expand1_a ;
          inst [java.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 0
|           [ nn
       (<^const_name>\<open>Num.numeral\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
            (      |(      | ((\<^const_name>\<open>Num.numeral\<close>, [m]), (\<^const_name>\<open>Num.numeral\<close>, [n])) =>
            (le_num_conv n m)
      | _ => ( [] m            nm)
  end

fun' =le_conv (le_neg_conv

val'\<^ctyp>\int\;
\<close>

ML int_le_conv' \<^ctyp>\int\;
\close>
  let
     not_zero_less_zero_a a ]@thm  conv
    val zero_less_numeral_a =
      insta ]@{hm [THEN  =  [a][@less_irrefl , THEN};
    val not_numeral_less_zero_a
inst[ {not_numeral_less_zero Eq_FalseI
    val numeral_less_iff_a = inst [a] [     not_numeral_less_zero_aexpand1_nat
val a;

    fun       [] n @ diff_0_eq_0java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(<\<java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 108
          inst' nat_conv args2 int_minus_conv(<
      | ((\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>
          instm 
      | ((\<^const_name>\<open>numeral\<close>, [m]), (\<^const_name>\<open>numeral\<close>, [n])) =>
          Thm.transitive
            inst])
            (less_num_conv m n)
      |_       (<
  in f conv|(^const_name>\<open>Num.One\<close>, []), _) =>.transitive

>\<open>nat\<close>;|(java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
\<close>

ML \<open>
fun less_neg_conv( [][,n]@thm)[meta
  let
al_less_zero_a
      inst [a [ @thm [<close>
    val not_zero_less_neg_numeral_a =
inst  java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    val neg_numeral_less_zero_a
inst[{thm [THEN]};
     not_numeral_less_neg_numeral_a
      inst \<open>
val  = inst
  in
    fn >fnfn
          val inst ]{numeral_times_numeral]}
(^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>
          inst     neg_numeral_less_iff_am ( (strip_app)of
|(\<^const_name>\<open>zero_class.zero\<close>, []), (\<^const_name>\<open>uminus\<close>, [n])) =>
          inststrip_numeral,strip_numeral
      |        (^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>zero_class.zero\<close>, [])) =>
          inst[ [,n]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 41
|(^>open
          inst [] [m, val = I 
      | ((\<^const_name>\<open>uminus\<close>, [m]), (\<^const_name>\<open>uminus\<close>, [n])) =>
          Thm.transitive
            (inst [] [m, n] neg_numeral_less_iff_a)
            (let
      | _ => conv m n
  end;

 less_conv( java.lang.StringIndexOutOfBoundsException: Range [45, 31) out of bounds for length 31

val =less_conv
\<close>

ML \<open>
fun If_conv a =
  let
    val = inst
v if_False a]{ if_False]java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
  in
    fn p = n => fn>fn'
      case strip_app             (args2
        \<^const_name>\<open>If\<close>, [cb, cx, cy]) =>'
          let
            val p_eq = p cb>conv
            val eq = Thm            val  =p cb
          in
            case Thm.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              \<^Const_>\<open>True\<close> =>
                let
                  val x_eq=x cx
                  valinst]{eq_num_simpsjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
                in
                  Thm.transitive
                    (Thm.combination
                       (Thm.combination eq x_eq(Thm java.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97
                       .transitive
                    end
                end
            | \<^Const_>\<open>False\<close> =>
                let
                   y_eq][, thm8meta
                   cy= Thm
                val =Thm y_eqjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
Thm

                       Thm eq(.reflexive []]thm THEN}java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
                       y_eq)
                                           )
                
            | _ => err     fun                end
          end| =  java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  end
\<close>

ML \<open>
fun drop_conv a =
  let
valinstdrop_0
        )
val>' (conv)e ( n)

    fun convconv term_of
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      |_= c strip_app of =
\const_name\^>
'
              ( [] nxs [] n x ] drop_Cons_a
              (If_conv_a (args2 a [{ neg_numeral_neq_numeralEq_FalseIjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
                 .eflexive
                 (cong2
  in conv      \<close>
\<close>

 \<open>
 nth_conv    val(  :".(theory_of_ctermct term_of);

    val nth_Cons_a = inst [a] [] @{thm    fun conv [][,]
    val If_conv_a = If_conv a;

    fun convfun eqn=Thm (Thm.java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 49
        ( ' a = (eq_neg_conv )ajava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
          transitive
             [ [x xs)
            ( args2)
               .reflexive
               (cong2' conv Thm.reflexive (args2 nat_minus_conv) inst[] [n] Thm. (.dest_fun2 ct))
  
    val eqn1 = conv1 (Thm.dest_arg1 ct);

end

100%


¤ 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.25Bemerkung:  ¤

*© 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 ist noch experimentell.