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
9
votes
3 answers

proof (rule disjE) for nested disjunction

In Isar-style Isabelle proofs, this works nicely: from `a ∨ b` have foo proof assume a show foo sorry next assume b show foo sorry qed The implicit rule called by proof here is rule conjE. But what should I put there to make it work for…
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
8
votes
1 answer

What is the best way to search through general definitions, theorems, functions, etc for Isabelle?

I was trying to go through the Isar chapter for Isabelle (theorem Prover) and the first statement has: lemma "¬ surj(f :: 'a ⇒ 'a set)" I wanted to understand what the constant surj was. I know that it's easy to look up theorems with: thm…
Charlie Parker
  • 5,884
  • 57
  • 198
  • 323
8
votes
0 answers

Isabelle/HOL sequents: meaning of types o, seq', meaning of nonterminals seq, seqobj, seqcont

I am trying to understand https://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/Sequents/Sequents/Sequents.html and https://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/Sequents/Sequents/ILL.html and I have problems with the…
TomR
  • 2,696
  • 6
  • 34
  • 87
8
votes
1 answer

What's the difference between "arith" and "presburger" in Isabelle?

Every goal that I have encountered in Isabelle so far that could be solved using arith could also be solved by presburger and vice versa, for example lemma "odd (n::nat) ⟹ Suc (2 * (n div 2)) = n" by presburger (* or arith *) What's the difference…
curiousleo
  • 296
  • 1
  • 7
8
votes
4 answers

How to replace ⋀ and ⟹ with ∀ and ⟶ in assumption

I'm an Isabelle newbie, and I'm a little (actually, a lot) confused about the relationship between ⋀ and ∀, and between ⟹ and ⟶. I have the following goal (which is a highly simplified version of something that I've ended up with in a real…
jchl
  • 6,332
  • 4
  • 27
  • 51
8
votes
1 answer

What is an Isabelle/HOL subtype? What Isar commands produce subtypes?

I'd like to know about Isabelle/HOL subtypes. I explain a little about why it's important to me in my partial answer to my last SO question: Trying to Treat Type Classes and Sub-types Like Sets and Subsets Basically, I only have one type, so it…
user2190811
8
votes
2 answers

Core of Verifier in Isabelle/HOL

Question What is the core algorithm of the Isabelle/HOL verifier? I'm looking for something on the level of a scheme metacircular evaluator. Clarification I'm only interested in the Verifier , not the strategies for automated theorem…
user1416711
  • 111
  • 3
7
votes
0 answers

The foundations of Isabelle

I started programming proofs in Isabelle one year and a half ago. Back then I mostly wrote Isabelle/Isar proofs. More recently, I have been doing a little of programming at the Isabelle/ML level. I found very inspiring this PhD thesis that describes…
user1868607
  • 2,558
  • 1
  • 17
  • 38
7
votes
1 answer

Universal Quantification in Isabelle/HOL

It has come to my attention that there are several ways to deal with universal quantification when working with Isabelle/HOL Isar. I am trying to write some proofs in a style that is suitable for undergraduate students to understand and reproduce…
Martin Copes
  • 931
  • 1
  • 7
  • 14
7
votes
1 answer

Bad theory import in isabelle

The following gives bad theory import "Multivariate_Analysis" imports Multivariate_Analysis Importing Main works fine, how do I import modules?
simonzack
  • 19,729
  • 13
  • 73
  • 118
7
votes
2 answers

hiding operators to avoid ambiguities in the AST

I'm trying the list example from the official Isabelle tutorial. I replaced the # with : and the @ with ++ to have the same syntax as Haskell. Now I get warnings about ambiguities in the AST. I know that I can hide functions with hide_const but this…
SvenK
  • 2,584
  • 2
  • 21
  • 24
7
votes
3 answers

Are there other HOL programming languages besides Caledon that are based on haskell?

There are programming languages and theorem prover based on higher order logic (HOL). Examples include Twelf, lambda prolog, Isabelle. For example Twelf is is both a programming language and a theorem prover, while Isabelle is mainly a theorem…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
7
votes
1 answer

When would you use `presume` in an Isar proof?

Isar has, besides assume, also the command presume to introduce facts in an Isar proof block. From what I can see and read in the docs, it does not require the assumption (presumption?) to be explicitly listed in the goal, and seems to add a case to…
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
7
votes
3 answers

What rule does 'apply (rule)' or 'proof' use?

When I use apply (rule) in an apply-script, typically an appropriate rule is selected. The same holds for proof in structured proofs. Where can I learn/lookup the name of the rule that was used?
corny
  • 7,824
  • 3
  • 14
  • 20
7
votes
1 answer

Invoking Nitpick and Sledgehammer together in Isabelle

When I state a lemma in Isabelle, I often type nitpick, and if that doesn't give me a counterexample. I then type sledgehammer to try to find a proof automatically. I wonder: is it possible to invoke Nitpick and Sledgehammer so that they run…
John Wickerson
  • 1,204
  • 12
  • 23
1
2
3
74 75