class Axiom::Function::Proposition
Abstract base class for logical propositions
Public Class Methods
coerce(object)
click to toggle source
Coerce a boolean into a proposition
@param [Object] object
@return [Proposition]
returned twhen the object can be coerced into a proposition
@raise [ArgumentError]
raised when the object cannot be coerced into a proposition
@api public
# File lib/axiom/function/proposition.rb, line 37 def self.coerce(object) case object when Proposition then object when true then Tautology.instance when false then Contradiction.instance else fail ArgumentError, "Invalid object #{object.inspect}" end end
type()
click to toggle source
Return the type returned from call
@example
type = Axiom::Function::Proposition.type # => Axiom::Types::Boolean
@return [Class<Types::Boolean>]
@api public
# File lib/axiom/function/proposition.rb, line 22 def self.type Types::Boolean end
Public Instance Methods
call(*)
click to toggle source
Evaluate the proposition
@example
proposition.call # => true or false
@return [Boolean]
@api public
# File lib/axiom/function/proposition.rb, line 55 def call(*) self.class.call end
inverse()
click to toggle source
Return the inverse proposition
@example
inverse = proposition.inverse
@return [Proposition]
@api public
# File lib/axiom/function/proposition.rb, line 81 def inverse self.class.inverse.instance end
rename(_aliases)
click to toggle source
A no-op when receiving rename
message
@example
proposition = proposition.rename(aliases)
@param [Algebra::Rename::Aliases] _aliases
@return [self]
@api public
# File lib/axiom/function/proposition.rb, line 69 def rename(_aliases) self end