나는 4-평가 로직 (거짓, 진실, 널 (null) 및 오류)에 대한 관련 함수를 정의하기 위해 노력하고있어 : datatype 'a maybe = Just "'a" | Nothing | Error
type_synonym bool4 = "bool maybe"
abbreviation JF :: "bool4" where "JF ≡ Just False"
다음은 any, void, integer, real, set 유형의 시스템입니다. interpretation ty_abel_semigroup: abel_semigroup "sup :: ty ⇒ ty ⇒ ty" ..
interpretation ty_comm_monoid_set: comm_monoid_set "sup :: ty ⇒ ty ⇒ ty" VType
코드 방정식의 좌측 편에 일정한 적용 : interpretation nat_plus_commute: comp_fun_commute "plus :: nat ⇒ nat ⇒ nat"
by standard auto
declare Finite_Set.fold_def [code del]
declare nat_plus_commute.fold_set_fol
저는 이사벨/HOL을 처음 보았지만 여전히 prog-prov 연습 문제를 연구 중입니다. 그 동안 나는 조합어의 문제에 이러한 증명 기법을 적용하여 운동을하고있다. 나는 '가치'와 '보조 정리 (lemma)'사이의 매우 다른 행동 (효율성 측면에서)을 관찰한다. 두 명령간에 서로 다른 평가/검색 전략을 설명 할 수 있습니까? '보조 정리'의 증거 안에 '가
여기 간단한 로케일의 일례이다. definition을 사용하여 정의 할 수 있지만 유도 술어가되어야합니다. 은 그 때 나는 로케일의 사소한 해석을 정의하고 그것을 사용하려고 : interpretation interp: test "op <" .
inductive some_pred where
"interp.test_eq x y ⟹
some
내 이론에는 4 가지 종류의 컬렉션이 있습니다. lift_definition mybag_includes :: "'a mybag ⇒ 'a ⇒ bool" is
"(λxs x. mybag_count xs x > 0)" .
lift_definition myseq_includes :: "'a myseq ⇒ 'a ⇒ bool" is
"(λxs x
Isabelle에서 함수를 정의했습니다. f:'a -> nat 여기서 'a은 monoid (즉, 그룹, 반올림, 반지, 정수 도메인, 필드 등)를 확장하는 일부 대수 구조입니다. 다른 구성에서는 내 유형 'a에 대해이 기능의 출력을 "계수"로 사용하고 싶습니다. 즉, x:'a과 n:nat이라면, 내가 n·x = x + x + ... + x이라는 Isabel
나는 (막 시작한) Isabelle에서 ML 코드를 작성하는 법을 배우고 있습니다. "Isabelle Cookbook"(2013) 및 Isabelle2017 사용에 대한 설명과 예제를 따르고 있습니다. 기능 term_of 및 prop_of은 더 이상 사용할 수 없습니까? ML 오류로 12 페이지주고 상승에 예 : ML error⌂:
Value or con
이제 막 이사벨을 시작하려고합니다. 내가 예상대로이 대부분 작동 theory Z
imports Main Int
begin
value "(2::int) + (2::int)"
lemma "(n::int) + (m::int) = m + n"
apply(auto) done
print_locale comm_ring_1
print_interp