Class: Lernen::Equiv::MooreLikeSimulatorOracle

Inherits:
Oracle
  • Object
show all
Defined in:
lib/lernen/equiv/moore_like_simulator_oracle.rb

Overview

MooreLikeSimulatorOracle provides an implementation of equivalence query that finds a counterexample by simulating the moore-like transition system.

Instance Attribute Summary

Attributes inherited from Oracle

#sul

Instance Method Summary collapse

Methods inherited from Oracle

#+, #stats

Constructor Details

#initialize(alphabet, automaton, sul) ⇒ MooreLikeSimulatorOracle

: (

  Array[In] alphabet,
  Automaton::MooreLike[Conf, In, Out] spa,
  System::SUL[In, Out] sul
) -> void


21
22
23
24
25
26
# File 'lib/lernen/equiv/moore_like_simulator_oracle.rb', line 21

def initialize(alphabet, automaton, sul)
  super(sul)

  @alphabet = alphabet
  @automaton = automaton
end

Instance Method Details

#find_cex(hypothesis) ⇒ Object



29
30
31
32
33
# File 'lib/lernen/equiv/moore_like_simulator_oracle.rb', line 29

def find_cex(hypothesis)
  super

  Automaton::MooreLike.find_separating_word(@alphabet, @automaton, hypothesis) # steep:ignore
end