⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boopscript.sml

📁 源程序漏洞检查
💻 SML
字号:
(* * Copyright 2003 Georg Weissenbacher * Institute for Software Technology/Graz University of Technology * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *)open HolKernel Parse basicHol90Lib intLib numLib realLib;val _ = new_theory "boop";val _ = bossLib.Hol_datatype `loc =     IntLoc of int  | RealLoc of real  | NumLoc of num`;val BOOP_UNREPINT_THM = bossLib.Define `    unrepInt (IntLoc i) = i`;val BOOP_UNREPREAL_THM = bossLib.Define `    unrepReal (RealLoc r) = r`;val BOOP_UNREPNUM_THM = bossLib.Define `    unrepNum (NumLoc i) = i`;val BOOP_SHIFTLEFT_THM = bossLib.Define `   (BOOP_SHIFTLEFT (v:int) 0n = v ) /\   (BOOP_SHIFTLEFT (v:int) (SUC n) = (BOOP_SHIFTLEFT (v+v) n))`;val BOOP_SHIFTRIGHT_THM = bossLib.Define `   (BOOP_SHIFTRIGHT (v:int) 0n = v ) /\   (BOOP_SHIFTRIGHT (v:int) (SUC n) = (BOOP_SHIFTRIGHT (v / 2) n))`;val BOOP_SHIFTMULDIV_THM = store_thm (    "BOOP_SHIFTMULDIV_THM",    ``!a n. BOOP_SHIFTLEFT (2 * a) n / 2 = BOOP_SHIFTLEFT a n``,    Tactical.THENL (bossLib.Induct_on `n`,        [          Tactical.THEN (REWRITE_TAC [BOOP_SHIFTLEFT_THM],            Tactical.THEN (ONCE_REWRITE_TAC [integerTheory.INT_MUL_SYM],                           simpLib.FULL_SIMP_TAC intSimps.int_ss                              [integerTheory.INT_MUL_DIV,                               integerTheory.INT_MUL_RID]                          )), 	  Tactical.THEN (REWRITE_TAC [BOOP_SHIFTLEFT_THM,                                       integerTheory.INT_DOUBLE],	                 ASM_REWRITE_TAC [])]));val BOOP_SHIFTLR_THM = store_thm (    "BOOP_SHIFTLR_THM",    ``!a n. BOOP_SHIFTRIGHT (BOOP_SHIFTLEFT a n) n = a``,    Tactical.THENL (bossLib.Induct_on `n`,        [          REWRITE_TAC [BOOP_SHIFTLEFT_THM, BOOP_SHIFTRIGHT_THM],          Tactical.THEN (REWRITE_TAC [BOOP_SHIFTLEFT_THM,                                      BOOP_SHIFTRIGHT_THM],	    Tactical.THEN (REWRITE_TAC [integerTheory.INT_DOUBLE],              Tactical.THEN (REWRITE_TAC [BOOP_SHIFTMULDIV_THM],                             ASM_REWRITE_TAC [])))]));val _ = save_thm ("BOOP_UNREPINT_THM",  BOOP_UNREPINT_THM);val _ = save_thm ("BOOP_UNREPREAL_THM",  BOOP_UNREPREAL_THM);val _ = save_thm ("BOOP_UNREPNUM_THM",  BOOP_UNREPNUM_THM);val _ = save_thm ("BOOP_SHIFTLEFT_THM",  BOOP_SHIFTLEFT_THM);val _ = save_thm ("BOOP_SHIFTRIGHT_THM",  BOOP_SHIFTRIGHT_THM);val _ = export_theory ();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -