ContentsIndex
Assistant.Expression
Portabilityportable (depende de GHC - GTK2HS)
StabilityVersion de juguete.
Contents
Tipos
Clases
Constructores
Metodos
Description
Definicion de expresiones e identificadores
Synopsis
data Id
= UID String
| GID Integer
data GenId
= Named Id
| Unnamed Integer
data Expr
= Var Id
| ASort Sort
| App Expr Expr
| Abs Id Expr Expr
| Pi GenId Expr Expr
| Unknown Integer [SubstT Id]
type SubstT a = [(a, Expr)]
class Eq a => SubstC a where
substNew :: [(a, Expr)] -> SubstT a
substAdd :: SubstT a -> a -> Expr -> SubstT a
substLookup :: SubstT a -> a -> Expr
substDom :: SubstT a -> [a]
substSub :: SubstT a -> SubstT a -> Bool
class SubstC a => SubstAppC a b where
substApp :: SubstT a -> b -> b
substListApp :: [SubstT a] -> b -> b
substAppFrom :: [(a, Expr)] -> b -> b
exprFreeVars :: Expr -> [Id]
exprUnkIds :: Expr -> [Integer]
exprUnnamedVars :: Expr -> [Integer]
exprGenVars :: Expr -> [Integer]
exprGetSorts :: Expr -> [Sort]
exprIsAllDef :: Expr -> Bool
exprIsVar :: Expr -> Bool
exprIsSort :: Expr -> PTS -> Bool
exprIsUnknown :: Expr -> Bool
exprIsApp :: Expr -> Bool
exprIsPi :: Expr -> Bool
exprIsPreRE :: PTS -> Expr -> Expr -> Bool
exprGetSort :: Expr -> Sort
exprGetUnknownInfo :: Expr -> (Integer, [SubstT Id])
exprGetId :: Expr -> Maybe Id
exprGetTerm :: Expr -> Expr
exprGetType :: Expr -> Expr
exprHasUnknown :: Expr -> Bool
exprRun :: Expr -> Expr
exprAlphaEq :: Expr -> Expr -> Bool
exprBetaEq :: Expr -> Expr -> Bool
exprBetaRed :: Expr -> Expr -> Bool
exprIsBRedex :: Expr -> Bool
exprWeakHead :: Expr -> Expr
exprWeakHeadR :: Expr -> Expr
exprAPF :: Expr -> Id -> [(Expr, [Expr])]
exprAPFR :: Expr -> Id -> Expr -> [Expr]
exprBetaStep :: Expr -> Id -> Expr -> [Expr]
Tipos
data Id
Definicion de un identificador.
Constructors
UID String
GID Integer
show/hide Instances
data GenId
Definicion de un identificador.
Constructors
Named Id
Unnamed Integer
show/hide Instances
data Expr
Expresiones del PTS
Constructors
Var IdVariable
ASort SortUn sort
App Expr ExprAplicacion de la forma (e)(e')
Abs Id Expr ExprAbstraccion de la forma v:E.E
Pi GenId Expr ExprPi de la forma TT v:E.E
Unknown Integer [SubstT Id]Elemento aun no determinado
show/hide 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.
show/hide 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.
show/hide 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