|
| Assistant.Derivation | | Portability | portable (depende de GHC - GTK2HS) | | Stability | Version de juguete. |
|
|
|
|
|
| Description |
| Definicion de las componentes que conforman a una derivacion.
|
|
| Synopsis |
|
| type Pos = [Int] | | | type DerivationStep = (Judgement, Maybe Rule, Bool) | | | type DerivationTree = Tree DerivationStep | | | type Derivation = (DerivationTree, DS, [Constraint]) | | | type DS = ([Expr], [Id], [GenId]) | | | derNew :: DerivationTree -> DS -> [Constraint] -> Derivation | | | derStepNew :: Judgement -> Maybe Rule -> DerivationStep | | | dsInit :: DS | | | derGetTree :: Derivation -> DerivationTree | | | derGetDS :: Derivation -> DS | | | derGetConstr :: Derivation -> [Constraint] | | | derStepFromPos :: DerivationTree -> Pos -> Maybe DerivationStep | | | derStepGetJudge :: DerivationStep -> Judgement | | | derStepGetRule :: DerivationStep -> Maybe Rule | | | derStepIsComp :: DerivationStep -> Bool | | | derDelPremises :: Derivation -> Pos -> Maybe Derivation | | | derJudgeFromPos :: Derivation -> Pos -> Maybe Judgement | | | derGetUnkIdsAt :: Derivation -> Pos -> [Integer] | | | derTreeComplCheck :: DerivationTree -> DerivationTree | | | derTreeFindMinDS :: DerivationTree -> DS | | | derTreeRebuildConstr :: PTS -> DerivationTree -> Maybe ([SubstT Integer], [Constraint]) | | | derTreeNoDefSorts :: Maybe PTS -> DerivationTree -> [Sort] | | | derIsComplete :: Derivation -> Bool | | | dsSet :: Integer -> Integer -> Integer -> DS | | | dsSetUnnamed :: DS -> Integer -> DS | | | dsGetUnnamed :: DS -> Integer | | | dsNew :: DS -> Int -> Int -> Int -> ([Expr], [Id], [GenId], DS) |
|
|
|
| Tipos
|
|
| type Pos = [Int] |
| Definicion de una posicion en el arbol de derivaciones.
|
|
| type DerivationStep = (Judgement, Maybe Rule, Bool) |
| Definicion de un paso de derivacion. Consiste de un juicio, la regla que
fue aplicada en este paso de la derivacion y la posicion que denota a este
paso en toda derivacion total.
|
|
| type DerivationTree = Tree DerivationStep |
| Definicion de un arbol de derivaciones.
|
|
| type Derivation = (DerivationTree, DS, [Constraint]) |
| Definicion de una derivacion. La definimos como un arbol de triplas, que
almacena la informacion de los juicios que la componen. Ademas contiene
informacion referida al conjunto de UNKNOWNs y variables que se pueden
generar para esta derivacion como asi tambien la lista de restricciones
existentes sobre la derivacion.
|
|
| type DS = ([Expr], [Id], [GenId]) |
| Almacena un estado interno particular de la derivacion. Mantiene un conteo
de las variables e incognitas que se han empleado en la misma.
|
|
| Constructores
|
|
| derNew :: DerivationTree -> DS -> [Constraint] -> Derivation |
| Define explicitamente una derivacion.
|
|
| derStepNew :: Judgement -> Maybe Rule -> DerivationStep |
| Construye un nuevo paso para una derivacion, con el juicio que recibe como
argumento. La regla indica si hay alguna regla que lo relacione con sus
premisas o no y la posicion determina su ubicacion en todo el arbol de
derivacion.
|
|
| dsInit :: DS |
| Define el estado inicial del generador de variables e incognitas nuevas.
|
|
| Metodos
|
|
| derGetTree :: Derivation -> DerivationTree |
| Dada una derivacion, devuelve el arbol asociada a la misma.
|
|
| derGetDS :: Derivation -> DS |
| Dada una derivacion, devuelve el contador de variables y UNKNOWNs.
|
|
| derGetConstr :: Derivation -> [Constraint] |
| Dada una derivacion, devuelve el conjunto de restricciones que debe
satisfacer la derivacion en cuestion.
|
|
| derStepFromPos :: DerivationTree -> Pos -> Maybe DerivationStep |
| Dada una derivacion y una posicion, devuelve el paso de derivacion que se
encuentra en esa posicion.
|
|
| derStepGetJudge :: DerivationStep -> Judgement |
| Dado un paso de la derivacion, devuelve el juicio asociado al mismo.
|
|
| derStepGetRule :: DerivationStep -> Maybe Rule |
| Dado un paso de la derivacion, devuelve la regla asociada al mismo.
|
|
| derStepIsComp :: DerivationStep -> Bool |
| Dado un paso de la derivacion, determina si dicha rama ya se encuentra
completada, es decir, sin ninguna incognita y con la regla de Axioma
aplicada a todas sus hojas.
|
|
| derDelPremises :: Derivation -> Pos -> Maybe Derivation |
| Dada una derivacion, devuelve la derivacion con el arbol de juicios
modificado, de forma tal que el subarbol ubicado en el camino dado como
argumento ha sido removido.
|
|
| derJudgeFromPos :: Derivation -> Pos -> Maybe Judgement |
| Dada una derivacion y una posicion, devuelve el juicio que forma parte de
la derivacion y se encuentra en esa posicion.
|
|
| derGetUnkIdsAt :: Derivation -> Pos -> [Integer] |
| Dada una derivacion y una posicion, devuelve la lista de identificadores de
incognitas que se encuentran presentes en la derivacion.
|
|
| derTreeComplCheck :: DerivationTree -> DerivationTree |
| Dada una derivacion, efectua el analisis de cada uno de los juicios que la
componen, verificando si ya todas las ramas finalizan con axiomas y ya no
quedan incognitas por definidir. Dicho de otro modo, verifica si la
derivacion ya esta completa.
|
|
| derTreeFindMinDS :: DerivationTree -> DS |
| Dado un arbol de derivaciones, retorna el minimo generador de incognitas y
variables tal que las variables que genere no ocurran en los juicios que
forman parte del arbol de derivaciones.
|
|
| derTreeRebuildConstr :: PTS -> DerivationTree -> Maybe ([SubstT Integer], [Constraint]) |
| Dada la especificacion de un PTS y un arbol de derivaciones, reconstruye
a partir de los mismos la informacion referida a las restricciones que debe
satisfacer dicho arbol.
|
|
| derTreeNoDefSorts :: Maybe PTS -> DerivationTree -> [Sort] |
| Dada una especificacion de PTS y un arbol de derivaciones, retorna la lista
de sorts que ocurren en los juicios que componen la derivacion y no se
encuentran definidos como sorts en la especificacion del PTS.
|
|
| derIsComplete :: Derivation -> Bool |
| Dada una derivacion, determina si la misma se encuentra completa. Esto es
que todas sus hojas son axiomas y que en ningun nodo de la derivacion se
encuentran incognitas.
|
|
| dsSet :: Integer -> Integer -> Integer -> DS |
| Dado el identificador inicial de incognitas y variables, retorna un nuevo
generador de incognitas y variables que generara elementos a partir de los
valores que se recibieron como argumento.
|
|
| dsSetUnnamed :: DS -> Integer -> DS |
| Dado un generador de incognitas y un contador de variables sin nombre,
configura el generador para que la proxima variable sin nombre se
corresponda con el valor dado.
|
|
| dsGetUnnamed :: DS -> Integer |
| Dado un generador de incognitas, retorna el identificador de la proxima
variable sin nombre que deberia de ser utilizada.
|
|
| dsNew :: DS -> Int -> Int -> Int -> ([Expr], [Id], [GenId], DS) |
| Dado un generador de variables e incognitas y un par de valores, retorna
tantas incognitas y veriables nuevas como se indica en el par dado como
argumento, ademas del generador de variables e incognitas actualizado.
|
|
| Produced by Haddock version 0.8 |