src/HOL/SPARK/Examples/RIPEMD-160/R_L.thy
author wenzelm
Fri, 18 Aug 2017 20:47:47 +0200
changeset 66453 cc19f7ca2ed6
parent 63167 0909deb8059b
child 69605 a96320074298
permissions -rw-r--r--
session-qualified theory imports: isabelle imports -U -i -d '~~/src/Benchmarks' -a;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     1
(*  Title:      HOL/SPARK/Examples/RIPEMD-160/R_L.thy
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     2
    Author:     Fabian Immler, TU Muenchen
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     3
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     4
Verification of the RIPEMD-160 hash function
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     5
*)
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     6
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     7
theory R_L
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     8
imports RMD_Specification RMD_Lemmas
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     9
begin
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    10
56798
939e88e79724 Discontinued old spark_open; spark_open_siv is now spark_open
berghofe
parents: 41561
diff changeset
    11
spark_open "rmd/r_l"
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    12
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    13
spark_vc function_r_l_2
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    14
proof -
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 56798
diff changeset
    15
  from \<open>0 \<le> j\<close> \<open>j \<le> 79\<close>
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    16
  show C: ?C1
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    17
    by (simp add: r_def r_list_def nth_map [symmetric, of _ _ int] del: fun_upd_apply)
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    18
      (simp add: nth_fun_of_list_eq [of _ _ undefined] del: fun_upd_apply)
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    19
  from C show ?C2 by simp
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    20
  have "list_all (\<lambda>n. int n \<le> 15) r_list"
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    21
    by (simp add: r_list_def)
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    22
  moreover have "length r_list = 80"
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    23
    by (simp add: r_list_def)
63167
0909deb8059b isabelle update_cartouches -c -t;
wenzelm
parents: 56798
diff changeset
    24
  ultimately show ?C3 unfolding C using \<open>j \<le> 79\<close>
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    25
    by (simp add: r_def list_all_length)
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    26
qed
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    27
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    28
spark_end
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    29
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    30
end