Error Number: 129

Mizar Message:

Invalid free variables in a Fraenkel operator

Description

Often happens if the types of variables ("LambdaVariables") parameterizing the Fraenkel term do not widen to the type "Element of X" where X is non empty set. The non emptiness requirement seems a bit redundant, see FraenkelNonEmpty.

-- JosefUrban - 25 Jul 2002

To use a Fraekel term, you need:

  • The directive: requirements SUBSET;
  • Fraenkel variables that widen to type: Element of X

Example

environ

 notations TARSKI, NUMBERS;
 constructors TARSKI, NUMBERS;
 requirements SUBSET, BOOLE, NUMERALS, ARITHM;

 notations NAT_1;
 constructors NAT_1;

begin

    reserve k for Nat;
    deffunc Improper() = { [k,1]: not contradiction };
::>                                                      *129
::> 129: Invalid free variables in a Fraenkel operator

The error above is that, although k is Nat iff k is Element of NAT, the Fraenkel constructor requires its variables to widen to some 'Element of'. The fix is to change the type of k:

    reserve k for Element of NAT;

-- GregFrascadore - 2009-05-24

WebForm
TopicClassification ErrorMessage
ProjectGroup?

ImplementationDate? N/A
Topic revision: r3 - 2009-05-24 - 14:46:24 - GregFrascadore
 
Mizar TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback