Correct chasing of type variable instantiations during type unification.
The following theory should not raise exception TERM:
constdefs
somepredicate :: "(('b => 'b) => ('a => 'a))
=> 'a => 'b => bool"
"somepredicate upd v x == True"
lemma somepredicate_idI:
"somepredicate id (f v) v"
by (simp add: somepredicate_def)
lemma somepredicate_triv:
"somepredicate upd v x ==> somepredicate upd v x"
by assumption
lemmas somepredicate_triv [OF somepredicate_idI]
lemmas st' = somepredicate_triv[where v="h :: nat => bool"]
lemmas st2 = st'[OF somepredicate_idI]
#
# $Id$
#
## targets
default: dvi
## dependencies
include ../Makefile.in
NAME = logics-HOL
FILES = logics-HOL.tex ../Logics/syntax.tex HOL.tex \
../rail.sty ../proof.sty ../iman.sty ../extra.sty ../ttbox.sty ../manual.bib
dvi: $(NAME).dvi
$(NAME).dvi: $(FILES) isabelle_hol.eps
$(LATEX) $(NAME)
$(RAIL) $(NAME)
$(BIBTEX) $(NAME)
$(LATEX) $(NAME)
$(LATEX) $(NAME)
$(SEDINDEX) $(NAME)
$(LATEX) $(NAME)
pdf: $(NAME).pdf
$(NAME).pdf: $(FILES) isabelle_hol.pdf
$(PDFLATEX) $(NAME)
$(RAIL) $(NAME)
$(BIBTEX) $(NAME)
$(PDFLATEX) $(NAME)
$(PDFLATEX) $(NAME)
$(SEDINDEX) $(NAME)
$(FIXBOOKMARKS) $(NAME).out
$(PDFLATEX) $(NAME)