isabelle


Constraining type variables in locales


The Isabelle library contains the classes real_inner and real_normed_vector, the latter of which is declared a subclass of the former in ~~src/HOL/Library/Inner_Product.thy.
Now, suppose we have a locale
locale foo =
fixes goo :: "'a::{real_normed_vector} => bool"
and wish to extend this locale with some new constants, and also constraining the sort of 'a to be real_inner at the same time, like so:
locale extended = foo +
fixes ext :: "'a::{real_inner} => nat"
Is there a way to do this? Trying to do this using the examples above sees Isabelle give goo the type 'b::{real_normed_vector} => bool in extended, when I instead require the type 'a::{real_inner} => bool.
You can do it like this:
locale extended = foo goo
for goo :: "'a :: real_inner ⇒ bool" +
fixes ext :: "'a => nat"

Related Links

Isabelle class obligation prove blue
Type declaration in Isabelle
Isabelle2016 and Proof General
Theory level obtain command
Failed to apply initial proof method. Proving an empty trace contains no messages
Sledgehammer gives insufficient proof tactic
How to show that 2 formula sare semantically equivalent in Isabelle
Isabelle: proof obligation - proving using counterexamples
Error using tptp_isabelle: Unknown logic “HOL-TPTP”
Isabelle: changing an element inside a list
Unexpected corecursive call
Isabelle and class overloading
Proof of Simplification Rules
Isabelle session graph as a dot file
How to extract concrete values from defined options
Isabelle: Axiomatization and Quickcheck vs auto solve_direct

Categories

HOME
log4j
osgi
cookies
ngrx
smarty
homebrew
view
relay
objectgears
mean-stack
bookshelf.js
c#-2.0
cross-browser
primary-key
communication
reveal.js
mapserver
modelica
nstableview
zend-framework3
percona
uitypeeditor
oracle-coherence
flux
excel-vba-mac
dbext
reverse-proxy
one-hot-encoding
autoconf
opencover
web-sql
crystal-reports-2010
underflow
apache-commons-io
intel-pin
tooltipster
fifo
spring-mybatis
dbclient
newline
instant-messaging
r-raster
iframe-resizer
http-status-code-503
caret
android-nestedscrollview
wixsharp
plsql-psp
webix-treetable
bootstrapper
lumberjack
ncalc
pdf-reactor
http-live-streaming
password-encryption
keydown
no-www
upstart
rails-routing
gabor-filter
elgg
setter
kbuild
akka-cluster
xcb
instant
bonobo
transmitfile
bstr
jwplayer7
lttng
react-native-listview
sigabrt
captivenetwork
cloudbees
cartesian-product
tarjans-algorithm
angular-leaflet-directive
cakephp-3.1
tableau-online
mono-embedding
proj4js
network-interface
mdt
fpml
internet-connection
typeof
sgen
navigationservice
poller
transcoding
terminal-services
multiprocessor
gridcontrol
dataadapter
robotics-studio
clipper
frameset
jspinclude
objective-c-2.0
chrono
netbeans-6.9
jquery-ui-layout
php-parser
spyware
deobfuscation
blackberry-playbook
sql-server-profiler
imac
coda-slider
jquery-ui-droppable
filtered-index
backcolor

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