|
Assistant.Expression | Portability | portable (depende de GHC - GTK2HS) | Stability | Version de juguete. |
|
|
|
|
|
Description |
Definicion de expresiones e identificadores
|
|
Synopsis |
|
|
|
|
Tipos
|
|
data Id |
Definicion de un identificador.
| Constructors | | Instances | |
|
|
data GenId |
Definicion de un identificador.
| Constructors | | Instances | |
|
|
data Expr |
Expresiones del PTS
| Constructors | | Instances | |
|
|
type SubstT a = [(a, Expr)] |
Defincion del tipo de sustitucion.
|
|
Clases
|
|
class Eq a => SubstC a where |
Definicion de la clase de sustituciones.
| | Methods | substNew :: [(a, Expr)] -> SubstT a | Dada una lista de identificadores y expresiones, crea una nueva
sustitucion con la informacion de dichos pares. Se debe garantizar
la unicidad de identificadores en la sustitucion resultante.
| | substAdd :: SubstT a -> a -> Expr -> SubstT a | Añade una nueva regla de sustitucion a una sustitucion dada.
Si el identificador empleado ya estaba definido, entonces el valor
por el cual se sustituye debe ser actualizado en la sustitucion.
| | substLookup :: SubstT a -> a -> Expr | Dados un identificador y una sustitucion, busca la expresion a la
cual se encuentra mapeado ese identificador en la sustitutcion.
| | substDom :: SubstT a -> [a] | Devuelve el dominio de una sustitucion.
| | substSub :: SubstT a -> SubstT a -> Bool | Dadas dos sustituciones, determina si la primera esta contenida en
la segunda.
|
| | Instances | |
|
|
class SubstC a => SubstAppC a b where |
Definicion de la clase de aplicacion de sustituciones.
| | Methods | substApp :: SubstT a -> b -> b | Dada una sustitucion y un elemento, devuelve el elemento resultante
de aplicar la sustitucion sobre dicho elemento.
| | substListApp :: [SubstT a] -> b -> b | Dada una lista de sustituciones y un elemento, aplica
secuencialmente las sustituciones de la lista a dicho elemento.
| | substAppFrom :: [(a, Expr)] -> b -> b | Dada una lista de pares formados por identificadores y expresiones
y un elemento, aplica la sustitucion representada por dicha lista
al elemento recibido. Se debe tomar como valida la ultima
ocurrencia de cada identificador.
|
| | Instances | |
|
|
Constructores
|
|
Metodos
|
|
exprFreeVars :: Expr -> [Id] |
Dada una expresion, devuelve la lista de variables libres que se encuentran
en dicha expresion
|
|
exprUnkIds :: Expr -> [Integer] |
Dada una expresion, devuelve una lista que contiene los identificadores
numericos de todas las expresiones desconocidas que conforman la misma.
|
|
exprUnnamedVars :: Expr -> [Integer] |
Dada una expresion, retorna la lista de identificadores de variables sin
nombre que ocurren en dicha expresion.
|
|
exprGenVars :: Expr -> [Integer] |
Dada una expresion, retorna los identificadores de todas las variables
generadas por la aplicacion que ocurren en dicha expresion.
|
|
exprGetSorts :: Expr -> [Sort] |
Dada una expresion, retorna la lista de sorts que ocurren en la misma.
|
|
exprIsAllDef :: Expr -> Bool |
Dada una expresion, determina si la misma ya no contiene incognitas.
|
|
exprIsVar :: Expr -> Bool |
Determina si una expresion es una variable o no.
|
|
exprIsSort :: Expr -> PTS -> Bool |
Determina si una expresion corresponde a un Sort valido para un PTS dado.
|
|
exprIsUnknown :: Expr -> Bool |
Determina si una expresion corresponde con una incognita.
|
|
exprIsApp :: Expr -> Bool |
Determina si una expresion corresponde a una aplicacion de expresiones.
|
|
exprIsPi :: Expr -> Bool |
Determina si una expresion corresponde a una expresion Pi o no.
|
|
exprIsPreRE :: PTS -> Expr -> Expr -> Bool |
Verifica si dos sorts forman parte de una tripla definida como relacion
en el PTS.
|
|
exprGetSort :: Expr -> Sort |
Dada una expresion de tipo Sort, devuelve el nombre de dicho sort, en caso
de que no se tratase de un sort, devuelve la cadena vacia.
|
|
exprGetUnknownInfo :: Expr -> (Integer, [SubstT Id]) |
Dada una expresion UNKNOWN, devuelve la informacion de la misma. Esto es un
par formado por el numero que la identifica y la lista de sustituciones que
deben ser aplicadas a dicha expresion. Si la expresion que se recibe no es
un UNKNOWN, entonces se devuelve (-1,[]).
|
|
exprGetId :: Expr -> Maybe Id |
Dada una expresion de tipo Abstraccion o Pi, devuelve el identificador que
capturan estas expresiones.
|
|
exprGetTerm :: Expr -> Expr |
Dada una expresion de tipo Abstraccion o Pi, devuelve la parte del termino
de dicha expresion.
|
|
exprGetType :: Expr -> Expr |
Dada una expresion de tipo Abstraccion o Pi, devuelve la partge del tipo
de dicha expresion.
|
|
exprHasUnknown :: Expr -> Bool |
Dada una expresion, determina si la misma contiene partes aun no definidas
(UNKNOWNs).
|
|
exprRun :: Expr -> Expr |
Dada una expresion, ejecuta la misma hasta encontrar una Weak Head Normal
Form.
|
|
exprAlphaEq :: Expr -> Expr -> Bool |
Dadas dos expresiones, determina si estas son equivalentes, salvo renombre
de variables.
|
|
exprBetaEq :: Expr -> Expr -> Bool |
Dadas dos expresiones, determina si estas son Beta equivalentes.
|
|
exprBetaRed :: Expr -> Expr -> Bool |
Dadas dos expresiones, determina si es posible beta reducir la primera
para llegar a la segunda expresion.
|
|
exprIsBRedex :: Expr -> Bool |
Determina si una expresion es un B-Redex o no.
|
|
exprWeakHead :: Expr -> Expr |
Efetua un paso de reduccion de una expresion en weak head normal form.
|
|
exprWeakHeadR :: Expr -> Expr |
Efectua la reduccion de una expresion a su weak head normal form,
tomando la reduccion como una relacion reflexiva y transitiva.
|
|
exprAPF :: Expr -> Id -> [(Expr, [Expr])] |
Application Premisses Finder
Dada una expresion y un identificador, devuelve la lista de posibles
premisas de la regla de Application que pueden hacerse sobre la expresion
recibida como argumento.
La expresion que recibe como arguemto es el resultado de una regla de
Application.
El identificador por el cual se reemplazaran las ocurrencias de algunos
terminos en la expresion recibida como argumento.
El resultado es una lista de pares, donde el primer componente es la
expresion que fue reemplazada por el identificador en la expresion
original. En tanto que el segundo elemento es una lista de las posibles
expresiones que se pueden obtener (dependiendo que cuales ocurrecias se
hayan sustituido).
|
|
exprAPFR :: Expr -> Id -> Expr -> [Expr] |
Application Premisses Finder with Restrictions
Esta funcion es similar a APF, con la salvedad de que los resultados son
filtrados usando la ultima expresion que recibe como argumento.
|
|
exprBetaStep :: Expr -> Id -> Expr -> [Expr] |
Dada una expresion devuelve la lista de expresiones beta-equivalentes que
se encuentran a solo un redex de distancia de la original. Los otros dos
argumentos son el identificador que reemplazara las ocurrencias de
expresiones y la expresion de Choice que define el tipo de dicho
identificador.
|
|
Produced by Haddock version 0.8 |