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
3
votes
1 answer

How to use a definition written on locale parameters in the assumptions of the locale?

If there is some definition on the parameters of a locale which would make the assumptions of the locale easier to write and/or read and/or understand (either because the function is quite complicated so would simplify the statement of the…
Jxek
  • 502
  • 1
  • 4
  • 13
3
votes
1 answer

Malformed definition: Nonlinear patterns not allowed in sequential mode

I have defined the following function: fun count:: "'a ⇒ 'a list ⇒ nat" where "count a Nil = 0" | "count a (Cons b xs) = (count a xs)" | "count a (Cons a xs) = (count a xs) + (Suc 0)" It should count the number of occurrences of element a in a list…
Vasi G.
  • 161
  • 8
3
votes
1 answer

How to use obtain to make forward elimination proofs easier to read?

I'm trying to do basic natural deduction proofs in Isabelle, following this document (particularly slide 23). I know I can do things like theorem ‹(A ⟶ B) ⟶ A ⟶ B› proof - { assume ‹A ⟶ B› { assume ‹A› with ‹A ⟶ B› have ‹B› .. …
Nick Hu
  • 43
  • 3
3
votes
1 answer

Term equality in Isabelle

Is there already some term equality relation defined in Isabelle? What is the broadest set of terms on which it is defined? Just to be clear, I'm looking for a relation a ~ b that returns True iff a is b in the sense that they look exactly the same…
IIM
  • 533
  • 3
  • 11
3
votes
0 answers

How to define an inductive predicate on fset?

I defined 2 kinds of values and a cast function: theory FSetIndTest imports Main "~~/src/HOL/Library/FSet" begin datatype val1 = A | B datatype val2 = C | D inductive cast_val :: "val1 ⇒ val2 ⇒ bool" where "cast_val A C" | "cast_val B…
Denis
  • 1,167
  • 1
  • 10
  • 30
3
votes
1 answer

In Isabelle, what do the angle brackets and double asterisks mean?

I'm trying to understand some Isabelle code, and there is some syntax I don't understand. I haven't seen them in tutorials, including the two bundled with the Isabelle2017 distribution, "Programming and Proving in Isabelle/HOL" and "The…
Alex Altair
  • 3,246
  • 3
  • 21
  • 37
3
votes
1 answer

Isabelle/HOL: Is there a concise notation for an arbitrary value of a type?

In Isabelle/HOL, I can denote an arbitrary (but fixed) value of any type by (SOME _. True). Is there a more concise notation for this?
Wolfgang Jeltsch
  • 781
  • 5
  • 10
3
votes
1 answer

Isabelle: Wellsortedness error

What is the Wellsortedness error in Isabelle. I encountered a trouble such as: How can I solve it?
3
votes
1 answer

Are inductive definitions finitely generated in Isabelle?

Peter Aczel's classic paper An Introduction to Inductive Definitions https://www.sciencedirect.com/science/article/pii/S0049237X08711200 says that, in an inductive definition, a rule is a pair (X,x), where X is a set, called the set of premisses…
Gergely
  • 6,879
  • 6
  • 25
  • 35
3
votes
1 answer

(Temporarily) disabling backtracking in Eisbach method

I have a method that generates a large number of possible states, and when chaining it using , with a (conditional) fail or tactic no_tac, the resulting combined method takes a very long time to terminate and causes the Isabelle interface to lag.…
JAB
  • 20,783
  • 6
  • 71
  • 80
3
votes
2 answers

`find_theorems` in the AFP

How can I use the find_theorems mechanism to search the whole Archive of Formal Proofs (AFP)? I have downloaded the archive to my machine, and I am able to import theories from it. For instance, if I write imports…
John Wickerson
  • 1,204
  • 12
  • 23
3
votes
1 answer

How do you use induction with tactics/Isar in Isabelle/HOL?

I am struggling to understand why each of the examples below either works or doesn't work and more abstractly how induction interacts with tactics vs Isar. I'm working on 4.3 in Programming and Proving in Isabelle/HOL (Dec 2016) on Windows 10 with…
3
votes
1 answer

How to use complex patterns in functions?

Here is a sample function: fun divide :: "enat option ⇒ enat option ⇒ real option" where "divide (Some ∞) _ = None" | "divide _ (Some ∞) = None" | "divide _ (Some 0) = None" | "divide (Some a) (Some b) = Some (a / b)" | "divide _ _ =…
Denis
  • 1,167
  • 1
  • 10
  • 30
3
votes
1 answer

Cannot generate LaTeX from Isabelle/HOL under Windows7

I have spent too many hours trying to generate a .pdf document out of my Isabelle theory Increments.thy. The Isabelle build command gets stuck and apparently this is an installation thing on Windows. Frustratingly enough, friends have done this on…
Stef Joosten
  • 337
  • 1
  • 8
3
votes
0 answers

Embedding SMT in Isabelle/HOL functions

I need to use some equational reasoning but I am not interested in redefining all the underlying theory. My goal is to use existing SMT solvers as done by sledgehammer. For instance, assume this theory of equality with some simple…