Questions tagged [isabelle]

Isabelle is a generic proof assistant, with Isabelle/HOL as main instance.

Isabelle is a generic proof assistant, which is best-known for its Isabelle/HOL instance. It allows mathematical formulas to be expressed in a formal language and provides tools for proving those formulas in a logical calculus. HOL specifications may be turned into program code in SML, OCaml, Haskell, or Scala. Isabelle includes many add-on tools like CVC4, Z3, SPASS, E prover.

User interfaces

Important links

1111 questions
0
votes
1 answer

Isabelle: linord proof

My attempt to create a custom linear order for a custom data type failed, Below is my code: theory Scratch imports Main begin datatype st = Str "string" fun solf_str_int:: "string ⇒ int" where "solf_str_int str = (if (size str) > 0 …
Johan
  • 575
  • 5
  • 21
0
votes
1 answer

Isabelle proof error when calling sequential record operations

I'm very new to Isabelle and proof obligations, and I'm currently translating a VDM model I made of the 'Dots and Boxes' game (the basic VDM type translations were provided for us). So far I have two record types, a Dot: record Dot = pos_x ::…
Callan Heard
  • 727
  • 1
  • 8
  • 18
0
votes
0 answers

Associativity of word_cat from Word.thy

I am having trouble proving that the word_cat function from Word.thy is associative. This fact seems to be missing from the Word theory itself (or at least find_theorems and a manual browse of the theory reveals nothing relevant), but I require…
Dominic Mulligan
  • 456
  • 2
  • 10
0
votes
1 answer

Isabelle unification error

I am new to Isabelle and this is a simplification of my first program theory Scratch imports Main begin record flow = Src :: "nat" Dest :: "nat" record diagram = DataFlows :: "flow set" Transitions :: "nat set" …
Johan
  • 575
  • 5
  • 21
0
votes
1 answer

Normal constant definition versus lambda constant definition

I have these two definitions. Why are they unfolding differently? How can I prove the "oops"-ed lemmas? (And in general, what is the difference between these two definitions in Isabelle, internally?) (Please don't direct me to external links because…
TFuto
  • 1,361
  • 15
  • 33
0
votes
1 answer

CARD of typedef of 0 to 7 nat

Update 2 (151015) I put some source below. It shows a skeleton of what I may use. With some help, I'm getting more sophisticated. I now know the difference between a numeral type type, and a constant of type numeral. The notation is all the same,…
user4655408
0
votes
1 answer

Isabelle - Nitpick - using witness values automatically

How can I automatically use the values found by nitpick, instead of using rule exI's and manually typing in the witness values? theorem "EX a b. a + b = 5 & a - b = (1 :: int)" nitpick [falsify=false] (* Nitpicking formula... …
TFuto
  • 1,361
  • 15
  • 33
0
votes
1 answer

Isabelle syntax: operator not of function type

I am just starting using sets in Isabelle and have I have the following: theory telephone imports Main begin typedecl NAME typedecl TELEPHONE record TelephoneBook = KNOWN :: " NAME set" NUMBER :: "(NAME * TELEPHONE) set" locale telephone_book…
lburski
  • 109
  • 9
0
votes
1 answer

How to generate code for reverse sorting

What is the easiest way to generate code for a sorting algorithm that sorts its argument in reverse order, while building on top of the existing List.sort? I came up with two solutions that are shown below in my answer. But both of them are not…
chris
  • 4,988
  • 20
  • 36
0
votes
1 answer

Proof of existence of prime factorization (Educational)

I am trying to write a proof of the existence of the prime factorization of numbers. It is meant to be educational, so every function is defined, we try not to use Isabelle built in functions. Here is my code: (* addition*) primrec suma::"nat ⇒ nat…
Martin Copes
  • 931
  • 1
  • 7
  • 14
0
votes
2 answers

isabelle termination with distance of real numbers

maybe someone can help me with a termination proof in Isabelle. I am trying to construct from the list A a new sub-list B. For constructing B, I read again and again of the whole A. Take out elements and use the result for the search for the next…
best wish
  • 55
  • 5
0
votes
1 answer

Isabelle HOL on Windows 10

I installed Windows 10 (64bit). Since then, Isabelle HOL is no longer starting, even after a re-installation (which ran through smoothly). The error message is the following: "Startup Error: Error starting Java VM". This happens with the two…
0
votes
1 answer

Case distinction for propositional logic

I would like to prove P ==> P by case distinction, to understand the latter. lemma "P ⟹ P" proof (cases P) goal (2 subgoals): 1. P ⟹ P ⟹ P 2. P ⟹ ¬ P ⟹ P I am not quite sure if I want these. I wanted to assume that P is true and then show P is…
Gergely
  • 6,879
  • 6
  • 25
  • 35
0
votes
1 answer

Recognising that a subgoal is proved

I would like to understand the state machine of the Isar Virtual Machine. Page 48 of Markus Wenzel's doctoral thesis gives a good overview but does not detail its messages in the Output panel. It might well be a later addendum to the system. I have…
Gergely
  • 6,879
  • 6
  • 25
  • 35
0
votes
1 answer

how to get isabelle to recognize an obvious conclusion

I'm trying to prove that the frontier, interior and exterior of a set are disjoint in isabelle. On the line I have marked '***', the fact that c \ d = {} clearly follows from the previous line given the assumption at the start of the block,…
simonzack
  • 19,729
  • 13
  • 73
  • 118