내가 함수 f 값 r으로, 세트 S에 일정하다는 표현하기 위해 노력하고있어 나의 첫번째 아이디어 f ` S = {r}
하지만 그와 같은 작동하지 않습니다 S은 비어있을 수 있습니다. 그래서 현재 f ` S ⊆ {r}
함께 일하고 있으며 okish 작동하지만이 여전히 표준 자동화에 적합하지 않다는 인상을 가지고있다. 특히, auto은 (삭제 관련이없는
일부 지역 주민은 가정이 매우 많으며 데이터 유형에 대한 유도와 매우 유사합니다 (가정이 나오는 곳). 그러한 로케일을 해석 할 때, 명명 된 사례를 갖는 것이 매우 편리 할 것입니다. 다음 작품들은 어떻게 성취합니까? locale Foo =
fixes P
assumes 0: "P 0"
assumes Suc: "P n ⟹ P (S
목표가 있다고 가정합니다. A ⟹ B ⟹ C ⟹ G 목표는 다루기 힘들며 (일부 증명 의무 조항에서 생성 됨) 개발 과정에서 여러 번 비슷한 모양으로 나타납니다. 목표를 단순화하기 위해 보조자 foo을 작성합니다. 모양은 A ⟹ C ⟹ (P ⟹ Q) ⟹ G입니다. 나는 case goal42
thus ?case
proof (rule foo)
나는 적어도 ", ∩ 및 -을 포함하는 용어에 대한 검색을 사용하여 충분히 단순한 방정식을 풀지는 못한다. Failed to finish proof⌂:
goal (1 subgoal):
1. ArityAnalysis.Afix Aexp Γ⋅(Aexp e⋅n) f|` (fv Γ ∪ fv e - domA Γ) =
ArityAnalysis.Afix Ae
나는 이사벨에서 증명할 수없는 또 다른 정리가있다. 신원과 전이 폐쇄가 포함된다. 은 다음과 같다 : lemma "r ⊆ Id ⟹ r^* = Id"
업데이트 : 같은이 ISAR에 lemma "r ⊆ Id ⟹r^* = Id"
apply (rule equalityI)
apply (rule subrelI)
apply (erule r
HOLCF의 Porder.thy에서 poset의 인스턴스를 list 데이터 유형으로 만들고 싶습니다. 다음과 같이 나의 시도는 다음과 같습니다 theory Scratch
imports Porder Representable
begin
datatype 'a myList =
Nil |
Cons 'a "'a myList"
instant
이사벨 (Isabelle)에게 새로운 브랜드이고 일반적으로 HOL 프로그래밍입니다. 교과서에있는 실습 중 하나는 다음과 같습니다. double :: nat ⇒ nat의 재귀 함수를 정의하고 double m = add m m을 증명합니다. 임 아직 정의하려고하지만 알아낼 수 없습니다. 여기까지 제가 한 것입니다. fun double :: "nat => nat
의 목록을 통해 난 그냥이 코드를 썼다 "지도"수 : lemmas gc_step_intros =
normal[OF step.intros(1)] normal[OF step.intros(2)] normal[OF step.intros(3)]
normal[OF step.intros(4)] normal[OF step.intros(5)] drop
"of_int i = 0 == i = 0"으로 줄일 수있는 증명 작업을하고 있습니다. 이것은 "of_int_eq_0_iff"규칙의 간단한 응용 프로그램처럼 보였지만 성공적으로이 규칙을 적용 할 수 없었습니다. 더 프로빙에 나는 어떠한 방법으로 다음의 보조 정리 lemma of_int_eq_0_imp1: “of_int i = 0 ==> i = 0”
을 입
내가 이자벨/HOL에 다음 식 있다고 가정 시스템을 모델링하기 위해 : typedecl Person
typedecl Car
consts age :: "Person ⇒ int"
consts drives ::"(Person × Car) set"
consts owns ::"(Person × Car) set"
이가 예상되는이 개 그들 사이의 관계라는