在伊薩爾式伊莎貝爾證明,這很好地工作:這裏 from `a ∨ b` have foo
proof
assume a
show foo sorry
next
assume b
show foo sorry
qed
通過proof調用的隱含規則是rule conjE。但是,我應該把有什麼使它的不僅僅是一個脫節的工作: from `a ∨ b ∨ c`
我正在試驗代碼生成器。我的理論包含了編碼不變的數據類型: typedef small = "{x::nat. x < 10}" morphisms to_nat small
by (rule exI[where x = 0], simp)
definition "is_one x ⟷ x = small 1"
現在我想導出代碼is_one。看來,我首先要建立數據類型的代碼生成如下
這是Isabelle's Code generation: Abstraction lemmas for containers?後續: 我想在下面的理論the_question生成代碼: theory Scratch imports Main begin
typedef small = "{x::nat. x < 10}" morphisms to_nat small
by (rul