|
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 |