Nuprl Definition : FormSafe1
FormSafe1(f) ==
  Form_ind(f;
           FormVar(v)
⇒ λvs.False;
           FormConst(c)
⇒ λvs.False;
           FormSet(x,phi)
⇒ r.λvs.False;
           FormEqual(a,b)
⇒ ra,rb.λvs.((↑null(vs))
                                      ∨ (∃x:Atom
                                          (set-equal(Atom;vs;[x])
                                          ∧ (((↑FormVar?(a)) ∧ (FormVar-name(a) = x ∈ Atom) ∧ (¬(x ∈ FormFvs(b))))
                                            ∨ ((↑FormVar?(b)) ∧ (FormVar-name(b) = x ∈ Atom) ∧ (¬(x ∈ FormFvs(a))))))));
           FormMember(a,b)
⇒ ra,rb.λvs.((↑null(vs))
                                       ∨ (∃x:Atom
                                           (set-equal(Atom;vs;[x])
                                           ∧ (↑FormVar?(a))
                                           ∧ (FormVar-name(a) = x ∈ Atom)
                                           ∧ (((↑FormVar?(b)) ∧ (FormVar-name(b) = x ∈ Atom)) ∨ (¬(x ∈ FormFvs(b)))))));
           FormAnd(a,b)
⇒ ra,rb.λvs.∃as,bs:Atom List
                                     (set-equal(Atom;vs;as @ bs)
                                     ∧ (ra as)
                                     ∧ (rb bs)
                                     ∧ (l_disjoint(Atom;as;FormFvs(b)) ∨ l_disjoint(Atom;bs;FormFvs(a))));
           FormOr(a,b)
⇒ ra,rb.λvs.((ra vs) ∧ (rb vs));
           FormNot(a)
⇒ ra.λvs.((↑null(vs)) ∧ (ra []));
           FormAll(x,phi)
⇒ r.λvs.False;
           FormExists(x,phi)
⇒ r.λvs.((¬(x ∈ vs)) ∧ (r [x / vs]))) 
Definitions occuring in Statement : 
FormFvs: FormFvs(f)
, 
Form_ind: Form_ind, 
FormVar-name: FormVar-name(v)
, 
FormVar?: FormVar?(v)
, 
set-equal: set-equal(T;x;y)
, 
l_disjoint: l_disjoint(T;l1;l2)
, 
l_member: (x ∈ l)
, 
null: null(as)
, 
append: as @ bs
, 
cons: [a / b]
, 
nil: []
, 
list: T List
, 
assert: ↑b
, 
exists: ∃x:A. B[x]
, 
not: ¬A
, 
or: P ∨ Q
, 
and: P ∧ Q
, 
false: False
, 
apply: f a
, 
lambda: λx.A[x]
, 
atom: Atom
, 
equal: s = t ∈ T
Definitions occuring in definition : 
apply: f a
, 
null: null(as)
, 
assert: ↑b
, 
and: P ∧ Q
, 
lambda: λx.A[x]
, 
FormFvs: FormFvs(f)
, 
atom: Atom
, 
l_disjoint: l_disjoint(T;l1;l2)
, 
or: P ∨ Q
, 
append: as @ bs
, 
set-equal: set-equal(T;x;y)
, 
list: T List
, 
exists: ∃x:A. B[x]
, 
l_member: (x ∈ l)
, 
not: ¬A
, 
FormVar-name: FormVar-name(v)
, 
equal: s = t ∈ T
, 
FormVar?: FormVar?(v)
, 
nil: []
, 
cons: [a / b]
, 
false: False
, 
Form_ind: Form_ind
FDL editor aliases : 
FormSafe1
FormSafe1
Latex:
FormSafe1(f)  ==
    Form\_ind(f;
                      FormVar(v){}\mRightarrow{}  \mlambda{}vs.False;
                      FormConst(c){}\mRightarrow{}  \mlambda{}vs.False;
                      FormSet(x,phi){}\mRightarrow{}  r.\mlambda{}vs.False;
                      FormEqual(a,b){}\mRightarrow{}  ra,rb.\mlambda{}vs.((\muparrow{}null(vs))
                                                                            \mvee{}  (\mexists{}x:Atom
                                                                                    (set-equal(Atom;vs;[x])
                                                                                    \mwedge{}  (((\muparrow{}FormVar?(a))
                                                                                        \mwedge{}  (FormVar-name(a)  =  x)
                                                                                        \mwedge{}  (\mneg{}(x  \mmember{}  FormFvs(b))))
                                                                                        \mvee{}  ((\muparrow{}FormVar?(b))
                                                                                            \mwedge{}  (FormVar-name(b)  =  x)
                                                                                            \mwedge{}  (\mneg{}(x  \mmember{}  FormFvs(a))))))));
                      FormMember(a,b){}\mRightarrow{}  ra,rb.\mlambda{}vs.((\muparrow{}null(vs))
                                                                              \mvee{}  (\mexists{}x:Atom
                                                                                      (set-equal(Atom;vs;[x])
                                                                                      \mwedge{}  (\muparrow{}FormVar?(a))
                                                                                      \mwedge{}  (FormVar-name(a)  =  x)
                                                                                      \mwedge{}  (((\muparrow{}FormVar?(b))  \mwedge{}  (FormVar-name(b)  =  x))
                                                                                          \mvee{}  (\mneg{}(x  \mmember{}  FormFvs(b)))))));
                      FormAnd(a,b){}\mRightarrow{}  ra,rb.\mlambda{}vs.\mexists{}as,bs:Atom  List
                                                                          (set-equal(Atom;vs;as  @  bs)
                                                                          \mwedge{}  (ra  as)
                                                                          \mwedge{}  (rb  bs)
                                                                          \mwedge{}  (l\_disjoint(Atom;as;FormFvs(b))
                                                                              \mvee{}  l\_disjoint(Atom;bs;FormFvs(a))));
                      FormOr(a,b){}\mRightarrow{}  ra,rb.\mlambda{}vs.((ra  vs)  \mwedge{}  (rb  vs));
                      FormNot(a){}\mRightarrow{}  ra.\mlambda{}vs.((\muparrow{}null(vs))  \mwedge{}  (ra  []));
                      FormAll(x,phi){}\mRightarrow{}  r.\mlambda{}vs.False;
                      FormExists(x,phi){}\mRightarrow{}  r.\mlambda{}vs.((\mneg{}(x  \mmember{}  vs))  \mwedge{}  (r  [x  /  vs]))) 
Date html generated:
2018_05_21-PM-11_27_08
Last ObjectModification:
2017_10_11-PM-09_21_55
Theory : PZF
Home
Index