section ‹Core Inference system› text ‹Contains just the stuff necessary for the definition of the Inference system› theory Core imports Main begin text ‹Basic types › type_synonym name = String.literal type_synonym indexname = "name × int" type_synonym "class" = String.literal type_synonym "sort" = "class set" abbreviation "full_sort ≡ ({}::sort)" (* Name duplication with Fv in term, change later*) datatype variable = Free name | Var indexname