isabelle

    0热度

    1回答

    type是semilattice_sup类的一个实例: datatype type = BType | IType | AType instantiation type :: semilattice_sup begin end 我想声明type × bool类型为这个类的一个实例太: type_synonym stype = "type × bool" instantiation

    0热度

    1回答

    Tobias Nipkow和Gerwin Klein在7.2.2节的“混凝土语义学”中有一个code_pred使用的例子。 我已经实现了一个基于实例的简单语言,我尝试计算表达式的值: theory BooLang imports Main begin type_synonym id = string type_synonym 'a Env = "id ⇒ 'a" dataty

    0热度

    1回答

    下面是一个简单的语言的定义: theory SimpleLang imports Main begin type_synonym vname = "string" datatype exp = BConst bool | IConst int | Let vname exp exp | Var vname | And exp exp datatype type = BType

    1热度

    1回答

    我想使用libisabelle从Scala调用Isabelle。但是,默认情况下(即使用tutorial中描述的调用),libisabelle将下载新的Isabelle安装。 我希望使用现有(只读)Isabelle配置。我试过如下: val path = "/opt/Isabelle2016-1" val setup = Setup.detect(Platform.genericPlatform

    1热度

    1回答

    我定义2种几乎相同的语言(foo和bar): theory SimpTr imports Main begin type_synonym vname = "string" type_synonym 'a env = "vname ⇒ 'a option" datatype foo_exp = FooBConst bool | FooIConst int |

    0热度

    1回答

    下面是一个简单的感应关系: datatype t1 = A t1 t1 | B datatype t2 = C t2 t2 | D inductive P :: "t1 ⇒ t2 ⇒ bool" where "P x1 y1 ⟹ P x2 y2 ⟹ P (A x1 x2) (C y1 y2)" | "P B D" lemma P_fun: "P x y ⟹

    0热度

    1回答

    我试图定义一种编程语言的通用操作: type_synonym vname = "string" type_synonym 'a env = "vname ⇒ 'a option" locale language = fixes big_step :: "'exp × 'val env ⇒ 'val ⇒ bool" (infix "⇒" 55) fixes typing :

    0热度

    1回答

    我有引理 lemma ex1_variable: "(∃x. ∀z. x = y z) = (∃!x. ∀z. x = y z)" 和我在证明有一个中间声明 "∀a. ∃P. ∀z. P = Q z a" 我想显示 "∀a. ∃!P. ∀z. P = Q z a". 我不能直接使用by (rule ex1_variable)因为∀a的。不过,我觉得应该可以使用类似subst的方法,例如

    0热度

    1回答

    我想分别使用最小和最大固定点计算来计算一些枚举类型的两个有限集合(假设为char)。我希望我的定义能够被提取到SML,并且在执行时是“半效的”。我有什么选择? 从探索HOL库和代码生成玩弄,我有以下几点看法: 我可以使用complete_lattice.lfp和complete_lattice.gfp常数有一对额外的单调函数来计算我的集合,这在其实我现在在做。代码生成可以处理这些常量,但生成的代码

    0热度

    1回答

    我正试图描述一种编程语言的类型系统。这对任何类型的任何类型的一个常见的亚型(VoidType)和一个共同的超类型(ANYTYPE): datatype type = VoidType | AnyType | BooleanType | EBooleanType | RealType | IntegerType | UnlimNa