next up previous contents index
Next: Classical Reasoning Up: Constructive and Classical Previous: Decidability

Squash Stability and Hidden Hypotheses

 

A hidden hypothesis P in a sequent can be unhidden if one of two conditions are met:

  1. The proposition P is squash stable.
  2. The conclusion of is squash stable.

A proposition is squash stable  if it is possible to figure out what its computational content is, given that you know that some computational content  exists (in the classical sense). The computational content of a proposition is some term that inhabits the proposition when it is considered as a type.

The squash stable predicate is defined in the core_2 theory as follows:

The proposition   (read `squash P  ') is considered true exactly when P is true. However, P's computational content when true can be arbitrary whereas 's computational content when true can only be the trivial constant term that inhabits the unit type. ( is defined as where x does not occur free in P).

As with decidability, it turns out that the property   can be inferred for many P from knowing that for the immediate subterms Q of P. It is also true that for any P. The tactic ProveSqStable takes advantage of these facts and attempts to prove goals of the form

by backchaining with any lemmas in the Nuprl library that have names with the prefixes sq_stable__ or decidable__ (note the two underscores in each case). There are many examples of such lemmas in the core_2 theory.

Since ProveSqStable  can be rather slow, it isn't called by the D tactic when D is applied to a set type hypothesis . However, D does check the sequent conclusion for trivial ways in which it might be squash stable.

The D tactic does recognise property lemmas  for abstractions that are wrapped  around set types. Property lemmas state that particular set type predicates are squash stable. If D is applied to an abstraction wrapped around a set type and there is a property lemma for the abstraction, then the predicate of the set type is always added unhidden to the hypothesis list.

Consider some abstraction where the are variables that have been slotted in for the immediate subterms of A. Say that unfolds to . Then the property lemma for A should have form

and should be named opid _properties  where opid is the opid of A. Examples of properties lemmas can be found in the theory int_1. Property lemmas can often be completely proven using the tactic ProvePropertiesLemma  .

Tactics related to unhiding are as follows:

UnhideSqStableHyp i

  UnhideAllHypsSinceSqStableConcl   Unhide   AddProperties i  



next up previous contents index
Next: Classical Reasoning Up: Constructive and Classical Previous: Decidability



Karla Consroe
Wed Oct 23 13:48:45 EDT 1996