# HG changeset patch # User Cezary Kaliszyk # Date 1266496598 -3600 # Node ID 15362b433d644c22faac98e669020acbf5ade844 # Parent d900d19931fa5140d0811bb5822ec40b53cb2b21 Description of the fv procedure. diff -r d900d19931fa -r 15362b433d64 Quot/Nominal/Fv.thy --- a/Quot/Nominal/Fv.thy Thu Feb 18 12:06:59 2010 +0100 +++ b/Quot/Nominal/Fv.thy Thu Feb 18 13:36:38 2010 +0100 @@ -28,6 +28,30 @@ and a NONE binding has to be on an argument that is an atom or an atom set. +How the procedure works: + For each of the defined datatypes, + For each of the constructors, + It creates a union of free variables for each argument. + + For an argument the free variables are the variables minus + bound variables. + + The variables are: + For an atom, a singleton set with the atom itself. + For an atom set, the atom set itself. + For a recursive argument, the appropriate fv function applied to it. + (* TODO: This one is not implemented *) + For other arguments it should be an appropriate fv function stored + in the database. + The bound variables are a union of results of all bindings that + involve the given argument. For a paricular binding the result is: + For a function applied to an argument this function with the argument. + For an atom, a singleton set with the atom itself. + For an atom set, the atom set itself. + For a recursive argument, the appropriate fv function applied to it. + (* TODO: This one is not implemented *) + For other arguments it should be an appropriate fv function stored + in the database. *) ML {*