isabelle


Isabelle HOLCF doesn't understand fixrec


Here is a very simple theory:
theory Test
imports HOLCF
begin
fixrec down :: "'a u → 'a"
where "down (up x) = x"
end
It gives the following error:
Type unification failed: Clash of types "_ ⇒ _" and "_ → _"
Type error in application: operator not of function type
Operator: up :: ??'a → ??'a⇩⊥
Operand: x :: ??'b
I have tried to declare different functions but I always get a similar error. What's a problem and how to fix it?
I tried to replace → by ⇒, but it doesn't help.
The single arrow → is the space of continuous functions whereas the double arrow ⇒ represents the space of all total functions. All packages in HOLCF only work with continuous functions. This is why ⇒ will not work for most of HOLCF. Function application for continuous functions, however, must be written explicitly using the ASCII infix operator $ or \<cdot>. So the following works:
fixrec down :: "'a u → 'a"
where "down $ (up $ x) = x"
Similarly, lambda abstractions for continuous functions use a capital Λ instead of a small λ.

Related Links

Establishing that a record type belongs to a given class
Generating Isabelle HTML documentation *without proofs*
When would you use `presume` in an Isar proof?
how to create an object logic via thf
What Isabelle library to reuse for expressing that some function is a linear order (on some set)
Isabelle: how to print result of 1 + 2?
Inductive Set with Non-fixed Parameters
What Kind of Type Definitions are Legal in Local Contexts?
Isabelle: Sledgehammer finds a proof but it fails
How to hide defined constants
Inductive predicates for a fixed tuple parameter
proof (rule disjE) for nested disjunction
Canonical way to get a more specific lemma
Can I define multiple names for a theorem?
How do I remove duplicate subgoals in Isabelle?
Why won't Isabelle simplify the body of my “if _ then _ else” construct?

Categories

HOME
ibm-bluemix
blogger
webpack
cookies
minimum-spanning-tree
google-api-php-client
spagobi
xmpp
cvs
cmd
ebean
fancybox
directx
multiple-records
facebook-php-sdk
vault
offline
windows-azure-storage
dynamics-crm-online
solaris-10
textfield
orleans
wkwebview
shopware
dynamic-featured-image
url-scheme
nhapi
strncpy
dbclient
large-file-upload
data-manipulation
siesta-swift
column-family
webtest
subset-sum
http-referer
overriding
revolution-slider
event-driven
abstract-class
vapor
sfdc
sql-server-agent
botbuilder
turbogears
.net-4.6.2
eclipse-gef
websphere-mq-fte
auto-update
jquery-nestable
datastax-startup
diagnostics
nodebb
qtwebview
pdfclown
mcafee
query-performance
angular-strap
visual-c++-2008
spring-android
gridview-sorting
qgraphicsview
jfugue
javax.sound.midi
unity-networking
rtbkit
retina
feedback
content-length
pundit
quicklisp
ionic
microbenchmark
sniffer
remobjects
streambase
truevault
c3
nstableviewcell
coldbox
heisenbug
kgdb
runtime.exec
flashvars
ocunit
jquery-knob
trusted
manchester-syntax
datawindow
online-compilation
uiviewanimation-curve
boost-filesystem
gnu-prolog
xmlspy
xmemcached
invite
krl
floating
remember-me
radcombobox
visitor-statistic
castle-monorail
audio-capture
mediarss
zune

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App