(* 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' conv ct = let val eqn = conv (Thm.dest_arg ct) in Thm.transitive Author: Stefan Thm (Thm (Thmdest_funML \<open>
(onv'(hmrhs_ofeqn) end;
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>
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>
lemmafun 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]}); caselemma:
_>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 endcase strip_numeralnof \<close>
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 ) inend \<close>
ML\<open> fun expand1 a =
val = inst ]@thm numeral_One[eta]} in
fn n => caseThm.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 > caseThm 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[]}
val nat_plus_conv =plus_conv I <^ctyp>\<open>nat\<close>; \<close>
lemmaThm (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 [] [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
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 caseThm.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 []]thmTHEN}java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
y_eq)
)
| _ => err funend 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>
val nth_Cons_a = inst [a] [] @{thmfun 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
¤ 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:
¤
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.