14 #ifndef _GEN_SPEC_CHECKER_H
15 #define _GEN_SPEC_CHECKER_H 1
36 bool alphaeq(
const Any t,
const Any t_);
40 bool betaeq(
const Any t,
const Any t_);
Finite sets with union operation.
Type * nf_type(const Type const *t)
147 153 nf (Tapp t m) = Tapp (nf t) (nf m) nf (Tall n t1 t2) = Tall n (nf t1) (nf t2) nf t@(Tvar _) =...
Definition: gen_spec_checker.c:1532
The representation of the set that holds strings.
Definition: vars_set.h:26
Any substM(Name n, Term *s, const Any any)
28 substM :: Name -> Term -> a -> a
Definition: gen_spec_checker.c:839
Operations on the data structure that represents dictionaries of names.
Any renameT(Name n1, Name n2, const Any a)
25 renameT :: Name -> Name -> a -> a
Definition: gen_spec_checker.c:873
The representation of the kinds in the typesystem.
Definition: checker.h:68
Type * substM_type(Name n, Term *s, const Type const *t)
138 145 substM n s t = sub t where sub t@(Tvar _) = t – substM does not touch Tvars sub t@(Tall n1 t...
Definition: gen_spec_checker.c:450
Term * substM_term(Name n, Term *s, const Term const *t)
219 244 substM n s t = sub t where fvs = freeNames s sub m@(Mvar n1) | n == n1 = s | otherwise = m su...
Definition: gen_spec_checker.c:674
The representation of the dictionary to hold strings under string keys.
Definition: namemap.h:29
Any renameM(Name n1, Name n2, const Any a)
FILE GenChecker.hs.
Definition: gen_spec_checker.c:880
Name freshNameFvs(nameSet *)
Definition: gen_spec_checker.c:61
Kind * substM_kind(Name n, Term *s, const Kind const *t)
Definition: gen_spec_checker.c:811
Term * nf_term(const Term const *t)
271 302 nf (Mlam x t e) = Mlam x (nf t) (nf e) nf (Mapp f a) = case whnf f of Mlam x t b -> nf (subst...
Definition: gen_spec_checker.c:1669
Type * refreshWith_type(namemap r, nameSet *ns, const Type const *t)
165 174 refreshWith r ns t = sub t where sub t@(Tvar n) = case Map.lookup n r of Nothing -> t Just n'...
Definition: gen_spec_checker.c:1101
bool alphaeq_type(const Type const *t, const Type const *t_)
155 163 alphaEq (Tvar n) (Tvar n') = n == n' alphaEq (Tall n t s) (Tall n' t' s') = alphaEq t t' && alpha...
Definition: gen_spec_checker.c:1241
The representation of the types in the typesystem.
Definition: checker.h:146
The wrapper that makes it possible to store in envmap different species of elements that occur in typ...
Definition: checker.h:329
The representation of the proof terms in the typesystem.
Definition: checker.h:298
bool alphaeq_term(const Term const *t, const Term const *t_)
Definition: gen_spec_checker.c:1275
Type * substT_type(Name n, Type *s, const Type const *t)
24 substT :: Name -> Type -> a -> a
Definition: gen_spec_checker.c:371
char * Name
The type to structurally represent identifier names.
Definition: checker.h:46
Term * substT_term(Name n, Type *s, const Term const *t)
195 217 substT n s t = sub t where fvs = freeNames s sub m@(Mvar _) = m – substT does not touch Mvar...
Definition: gen_spec_checker.c:540
Term * refreshWith_term(namemap r, nameSet *ns, const Term const *t)
33 refreshWith r ns = id
Definition: gen_spec_checker.c:1176