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
2 answers

Custom Isabelle syntax breaks existing syntax

I am attempting to generate a nice syntax for mapping a function over the values of an associative list, i.e. I want to write [x ↦ f y | (x ↦ y) ∈ l] for mapAList f l. I came up with syntax "_alist_map" :: "['b, pttrn, ('a × 'b) list] ⇒ ('a × 'b)…
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
0
votes
1 answer

Program extraction using native integers/words (not bignums) from Isabelle theory

This question comes in a context where Isabelle is used with formal software development in mind more than with pure maths theorization in mind (and from a standalone developer's context). Seems at best, SML programs generated from an Isabelle…
Hibou57
  • 6,870
  • 6
  • 52
  • 56
0
votes
1 answer

Isabelle/Simpl: Calling a Procedure Twice

I have been reading and using Isabelle/Simpl for the past month or so. I have written and proved a few theories. I have also written the following Isabelle/Simpl theory the illustrates the issue I currently have. theory MemTest imports HeapList…
George
  • 2,758
  • 12
  • 16
0
votes
2 answers

Does Lueng's RegExp library work with Isabelle/ML? Is there another regex lib devs use for Isabelle/ML?

Q1: Does anyone know if Lueng's RegExp library works by magic with Isabelle/ML? Q2: Is there some standard regex library that developers use for Isabelle/ML? I had big plans to learn Scala, where my main application was going to be processing a THY…
user3317019
0
votes
1 answer

I need binary and hex syntax translations for type num

I ask my question first. Question: I need binary and hex syntax for the num datatype. Is there some source somewhere I can easily adapt? Can someone provide it for me? Or, does it already exist? The numeral type class allows the use of binary and…
user3317019
0
votes
1 answer

Isabelle: prove that this set notation of a matrice results in a finite set

I am using the development version of Isabelle from the repository. I hope it is a good decicion. Sledgehammer is again greatly improved! The isabelle developpers are really great! The reason for the dev version is that Isabelle2013-2 was crashing…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
2 answers

Isabelle: run try command without try0

Occasionally there is a lemma, where try0 crashes Isabelle/JEdit. Only kill -9 on the process id works then. When I then call try in the same situation, Isabelle/JEdit crashes again. Is it possible to invoke in this situation everything from try…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

Isabelle: Why do I get completely different results when running try versus sledgehammer

When I look only (this is not stated in the title) at the Sledgehammer results, the output of try often gives various results from sledgehammer while running sledgehammer directly gives zero(!) results. Now I know, the design goal of Sledgehammer…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
2 answers

Isabelle: this lemma about polynomials is only provable for idoms

In short: I have only a backgroung in computer science and not mathematics. I have proven a lemma in Isabelle for idoms and concluded that it cannot be proven for polynomials of rings 'a::comm_ring_1 poly. But I am not fully sure. In the Isabelle…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

How to explicitly bind variables in an induction proof?

I have a datatype and an inductive predicate over it (which is actually a small-step semantics of some transition system): datatype dtype = E | A | B dtype inductive dsem :: "dtype ⇒ dtype ⇒ bool" where "dsem A E" | "dsem (B E) E" | "dsem d d'…
0
votes
1 answer

Unfold/simp has no effect in a primrec type class instantiation proof

Up until several days ago, I always defined a type, and then proved theorems directly about the type. Now I'm trying to use type classes. Problem The problem is that I can't instantiate cNAT for my type myD below, and it appears it's because simp…
user3088629
0
votes
1 answer

conflicting versions in Isabelle?

I installed Isabelle 2013-2 onto a Windows machine that already had a 2012 version. Trying to read Lambda.thy from the Nominal Isabelle distribution (already discussed this on its mailing list) I get Outer syntax error: command expected, but…
Gergely
  • 6,879
  • 6
  • 25
  • 35
0
votes
2 answers

Isabelle: Opposite of "intro impI"

If my goal state is foo ==> bar --> qux, I know that I can use the statement apply (intro impI) to yield the goal state foo ==> bar ==> qux. What about the other direction? Which command will send me back to the goal state foo ==> bar --> qux?…
John Wickerson
  • 1,204
  • 12
  • 23
0
votes
1 answer

Isabelle: If statement inside a sum

I have a problem with an if-statement within a sum. I checked the solution in another question on if statements in isabelle but it did not help. Here is an example: theorem dummy: fixes a :: "('a::comm_ring_1 poly)" and B ::…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
0
votes
1 answer

Isabelle: Metis: Proof state contains the universal sort {}

Metis gives me the warning: Metis: Proof state contains the universal sort {} ("HOL/Tools/Metis/metis_tactic.ML") What does this warning mean? Is this an indication that the metis proof is "less sound" than without the warning?
mrsteve
  • 4,082
  • 1
  • 26
  • 63