pg-verify 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +98 -0
  5. data/README.md +29 -0
  6. data/Rakefile +62 -0
  7. data/bin/console +15 -0
  8. data/bin/pg-verify.rb +18 -0
  9. data/bin/setup +8 -0
  10. data/calc.ebnf +21 -0
  11. data/data/config/pg-verify.yml +66 -0
  12. data/data/nusmv.sample.smv +179 -0
  13. data/data/project-template/.gitignore.resource +4 -0
  14. data/data/project-template/.pg-verify.yml +0 -0
  15. data/data/project-template/README.md +18 -0
  16. data/data/project-template/addon/.keep +0 -0
  17. data/data/project-template/program-graph.rb.resource +103 -0
  18. data/devpg +5 -0
  19. data/doc/examples/railroad_crossing.rb +61 -0
  20. data/doc/examples/train-tree.rb +43 -0
  21. data/doc/examples/weidezaun.rb +99 -0
  22. data/doc/examples/weidezaun.txt +29 -0
  23. data/doc/expose/definition.png +0 -0
  24. data/doc/expose/diagram.png +0 -0
  25. data/doc/expose/expose.md +359 -0
  26. data/doc/expose/validity.png +0 -0
  27. data/exe/pg-verify +4 -0
  28. data/integration_tests/ruby_dsl/001_states.rb +10 -0
  29. data/integration_tests/ruby_dsl/002_transitions.rb +10 -0
  30. data/integration_tests/ruby_dsl/003_actions.rb +14 -0
  31. data/integration_tests/ruby_dsl/004_guards.rb +18 -0
  32. data/integration_tests/ruby_dsl/005_variables.rb +16 -0
  33. data/integration_tests/ruby_dsl/006_state_variables.rb +26 -0
  34. data/integration_tests/ruby_dsl/007_variable_initialization.rb +28 -0
  35. data/integration_tests/ruby_dsl/008_state_initialization.rb +19 -0
  36. data/integration_tests/ruby_dsl/009_shared_variables.rb +26 -0
  37. data/integration_tests/ruby_dsl/010_complex_guards.rb +18 -0
  38. data/integration_tests/ruby_dsl/011_complex_actions.rb +16 -0
  39. data/integration_tests/ruby_dsl/012_error_components.rb +9 -0
  40. data/integration_tests/ruby_dsl/013_hazards.rb +25 -0
  41. data/integration_tests/ruby_dsl/014_tau_transitions.rb +26 -0
  42. data/integration_tests/ruby_dsl/015_basic_dcca.rb +19 -0
  43. data/integration_tests/ruby_dsl/016_pressure_tank.rb +146 -0
  44. data/lib/pg-verify/cli/cli.rb +235 -0
  45. data/lib/pg-verify/core/cmd_runner.rb +151 -0
  46. data/lib/pg-verify/core/core.rb +38 -0
  47. data/lib/pg-verify/core/extensions/array_extensions.rb +11 -0
  48. data/lib/pg-verify/core/extensions/enumerable_extensions.rb +19 -0
  49. data/lib/pg-verify/core/extensions/nil_extensions.rb +7 -0
  50. data/lib/pg-verify/core/extensions/string_extensions.rb +84 -0
  51. data/lib/pg-verify/core/shell/colorizer.rb +136 -0
  52. data/lib/pg-verify/core/shell/shell.rb +0 -0
  53. data/lib/pg-verify/core/util.rb +146 -0
  54. data/lib/pg-verify/doctor/doctor.rb +180 -0
  55. data/lib/pg-verify/ebnf_parser/ast.rb +31 -0
  56. data/lib/pg-verify/ebnf_parser/ebnf_parser.rb +26 -0
  57. data/lib/pg-verify/ebnf_parser/expression_parser.rb +177 -0
  58. data/lib/pg-verify/ebnf_parser/expression_parser2.rb +422 -0
  59. data/lib/pg-verify/ebnf_parser/expressions.ebnf +33 -0
  60. data/lib/pg-verify/ebnf_parser/expressions.peg +52 -0
  61. data/lib/pg-verify/ebnf_parser/parser_result.rb +26 -0
  62. data/lib/pg-verify/interpret/component_context.rb +125 -0
  63. data/lib/pg-verify/interpret/graph_context.rb +85 -0
  64. data/lib/pg-verify/interpret/interpret.rb +142 -0
  65. data/lib/pg-verify/interpret/pg_script.rb +72 -0
  66. data/lib/pg-verify/interpret/spec/ltl_builder.rb +90 -0
  67. data/lib/pg-verify/interpret/spec/spec_context.rb +32 -0
  68. data/lib/pg-verify/interpret/spec/spec_set_context.rb +67 -0
  69. data/lib/pg-verify/interpret/transition_context.rb +55 -0
  70. data/lib/pg-verify/model/allocation_set.rb +28 -0
  71. data/lib/pg-verify/model/assignment.rb +34 -0
  72. data/lib/pg-verify/model/component.rb +40 -0
  73. data/lib/pg-verify/model/dcca/hazard.rb +16 -0
  74. data/lib/pg-verify/model/dcca.rb +67 -0
  75. data/lib/pg-verify/model/expression.rb +106 -0
  76. data/lib/pg-verify/model/graph.rb +58 -0
  77. data/lib/pg-verify/model/model.rb +10 -0
  78. data/lib/pg-verify/model/parsed_expression.rb +77 -0
  79. data/lib/pg-verify/model/simulation/trace.rb +43 -0
  80. data/lib/pg-verify/model/simulation/variable_state.rb +23 -0
  81. data/lib/pg-verify/model/source_location.rb +45 -0
  82. data/lib/pg-verify/model/specs/spec.rb +44 -0
  83. data/lib/pg-verify/model/specs/spec_result.rb +25 -0
  84. data/lib/pg-verify/model/specs/spec_set.rb +43 -0
  85. data/lib/pg-verify/model/specs/specification.rb +50 -0
  86. data/lib/pg-verify/model/transition.rb +41 -0
  87. data/lib/pg-verify/model/validation/assignment_to_state_variable_validation.rb +26 -0
  88. data/lib/pg-verify/model/validation/empty_state_set_validation.rb +18 -0
  89. data/lib/pg-verify/model/validation/errors.rb +119 -0
  90. data/lib/pg-verify/model/validation/foreign_assignment_validation.rb +30 -0
  91. data/lib/pg-verify/model/validation/unknown_token_validation.rb +35 -0
  92. data/lib/pg-verify/model/validation/validation.rb +23 -0
  93. data/lib/pg-verify/model/variable.rb +47 -0
  94. data/lib/pg-verify/model/variable_set.rb +84 -0
  95. data/lib/pg-verify/nusmv/nusmv.rb +23 -0
  96. data/lib/pg-verify/nusmv/runner.rb +124 -0
  97. data/lib/pg-verify/puml/puml.rb +23 -0
  98. data/lib/pg-verify/shell/loading/line_animation.rb +36 -0
  99. data/lib/pg-verify/shell/loading/loading_animation.rb +80 -0
  100. data/lib/pg-verify/shell/loading/loading_prompt.rb +43 -0
  101. data/lib/pg-verify/shell/loading/no_animation.rb +20 -0
  102. data/lib/pg-verify/shell/shell.rb +30 -0
  103. data/lib/pg-verify/simulation/simulation.rb +7 -0
  104. data/lib/pg-verify/simulation/simulator.rb +90 -0
  105. data/lib/pg-verify/simulation/state.rb +53 -0
  106. data/lib/pg-verify/transform/hash_transformation.rb +104 -0
  107. data/lib/pg-verify/transform/nusmv_transformation.rb +261 -0
  108. data/lib/pg-verify/transform/puml_transformation.rb +89 -0
  109. data/lib/pg-verify/transform/transform.rb +8 -0
  110. data/lib/pg-verify/version.rb +5 -0
  111. data/lib/pg-verify.rb +47 -0
  112. data/pg-verify.gemspec +38 -0
  113. data/sig/pg-verify.rbs +4 -0
  114. metadata +226 -0
@@ -0,0 +1,89 @@
1
+
2
+
3
+ module PgVerify
4
+ module Transform
5
+
6
+ class PumlTransformation
7
+
8
+ def transform_graph(graph, variable_state: nil, only: nil)
9
+
10
+ components = graph.components
11
+ components = components.select { |c| only.map(&:to_s).include?(c.name.to_s) } unless only.nil?
12
+
13
+ parts = []
14
+ parts << components.map { |c| transform_component(graph, c) }.join("\n\n")
15
+ parts << transform_variable_state(graph, variable_state) unless variable_state.nil?
16
+ parts = parts.compact.join("\n\n")
17
+ return "@startuml Programmgraph\n#{parts}\n@enduml\n"
18
+ end
19
+
20
+ def transform_variable_state(graph, variable_state)
21
+ state_variables = graph.state_variables()
22
+ return state_variables.map { |var|
23
+ state = variable_state[var.name]
24
+ "rectangle #{state} as #{var.name}_#{state} #{Settings.puml.active_state_color}"
25
+ }.join("\n")
26
+ end
27
+
28
+ def transform_component(graph, component)
29
+ # Transform component states
30
+ states_s = component.states.map { |s| transform_state(component, s) }.join("\n")
31
+ # Transform component transitions
32
+ trans_s = component.transitions.map { |t| transform_transition(component, t) }.join("\n")
33
+ # Transform component variables
34
+ vars = graph.variables.select_by_owner(component.name)
35
+ vars_s = transform_variables(component, vars)
36
+ # Transform the initial state
37
+ initial_s = transform_initial(graph, component)
38
+
39
+ str = [ states_s, trans_s, vars_s, initial_s ].compact.join("\n")
40
+ return "rectangle #{component.name} {\n#{indented(str)}\n}"
41
+ end
42
+
43
+ def transform_initial(graph, component)
44
+ return "" # TODO: Find initial states
45
+ # initial_state_name = "#{component.name}_initial"
46
+ # str = "circle initial as #{initial_state_name} \n"
47
+ # str += "#{initial_state_name} --> #{component.name}_#{component.initial_state}"
48
+
49
+ # vars = graph.variables.select_by_owner(component.name)
50
+ # init_var_s = vars.map(&:init_expression).compact.join(' && ')
51
+
52
+ # str += ": #{init_var_s}" unless init_var_s.empty?
53
+ # str += "\n"
54
+ # return str
55
+ end
56
+
57
+ def transform_state(component, state)
58
+ return "rectangle #{state} as #{component.name}_#{state}"
59
+ end
60
+
61
+ def transform_transition(component, transition)
62
+ label = [ transition.precon, transition.guard ].map(&:to_s).reject(&:empty?).join(" && ")
63
+ label += "/ " + transition.action.to_s unless transition.action.nil?
64
+
65
+ label = ": #{label}" unless label.strip.empty?
66
+ return "#{component.name}_#{transition.src_state} --> #{component.name}_#{transition.tgt_state} #{label}"
67
+ end
68
+
69
+ def indented(str)
70
+ str.split("\n").map { |s| "\t#{s}" }.join("\n")
71
+ end
72
+
73
+ def transform_variables(component, variables)
74
+ return nil if variables.empty?
75
+ body = variables.map { |v| "#{v.name} => #{transform_range(v.range)}" }.join("\n")
76
+ return "map #{component.name}Variables {\n#{body}\n}"
77
+ end
78
+
79
+ def transform_range(range)
80
+ return range.to_s if range.is_a?(Range)
81
+ return range.map(&:to_s).join(', ') if range.is_a?(Array)
82
+ raise "Unknown type for range '#{range}::#{range.class}'"
83
+ end
84
+
85
+ end
86
+
87
+
88
+ end
89
+ end
@@ -0,0 +1,8 @@
1
+ # Require all module files
2
+ Dir[File.join(__dir__, "**", '*.rb')].sort.each { |file| require file }
3
+
4
+ module PgVerify
5
+ module Transform
6
+
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PgVerify
4
+ VERSION = "0.1.0"
5
+ end
data/lib/pg-verify.rb ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "pg-verify/version"
4
+ require_relative "pg-verify/core/core.rb"
5
+ require_relative "pg-verify/shell/shell.rb"
6
+ require_relative "pg-verify/doctor/doctor.rb"
7
+ require_relative "pg-verify/model/model.rb"
8
+ require_relative "pg-verify/interpret/interpret.rb"
9
+ require_relative "pg-verify/cli/cli.rb"
10
+ require_relative "pg-verify/transform/transform.rb"
11
+ require_relative "pg-verify/nusmv/nusmv.rb"
12
+ require_relative "pg-verify/puml/puml.rb"
13
+ require_relative "pg-verify/simulation/simulation.rb"
14
+ require 'config'
15
+ require 'fileutils'
16
+ require 'open3'
17
+
18
+ module PgVerify
19
+
20
+ def self.init()
21
+ config_paths = []
22
+ config_paths << File.expand_path('data/config/pg-verify.yml', self.root)
23
+ config_paths << File.expand_path('.pg-verify.yml', Dir.home)
24
+ config_paths << File.expand_path('.pg-verify.yml', Dir.pwd)
25
+ config_paths.select! { |path| File.file?(path) }
26
+ Config.load_and_set_settings(*config_paths)
27
+
28
+ Colorizer.attach(Settings.theme.to_h)
29
+ end
30
+
31
+ def self.root()
32
+ File.expand_path(File.join(__dir__, ".."))
33
+ end
34
+
35
+ def self.addon_dir()
36
+ File.expand_path("addon", Dir.pwd)
37
+ end
38
+
39
+ def self.tmp_file(relative_path)
40
+ path = File.expand_path(relative_path, Settings.workdir)
41
+ FileUtils.mkdir_p(File.dirname(path))
42
+ return path
43
+ end
44
+
45
+ end
46
+
47
+ PgVerify.init()
data/pg-verify.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/pg-verify/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "pg-verify"
7
+ spec.version = PgVerify::VERSION
8
+ spec.authors = ["Arian Weber"]
9
+ spec.email = ["weber.arian.dev@gmail.com"]
10
+
11
+ spec.summary = "Tool for the declaration and transformation of program graphs"
12
+ # spec.description = "TODO: Write a longer description or delete this line."
13
+ spec.homepage = "https://github.com/ArianWeber/pg-verify"
14
+ spec.required_ruby_version = ">= 2.6.0"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
18
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
19
+
20
+ # Specify which files should be added to the gem when it is released.
21
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
+ spec.files = Dir.chdir(__dir__) do
23
+ `git ls-files -z`.split("\x0").reject do |f|
24
+ (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
25
+ end
26
+ end
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+
31
+ # Gem dependencies
32
+ spec.add_dependency "thor", "~> 1.2.1"
33
+ spec.add_dependency "ebnf", "~> 2.3.4"
34
+ spec.add_dependency "rainbow", "~> 3.0.0"
35
+ spec.add_dependency "config", "~> 4.2.1"
36
+ spec.add_dependency "plantuml_builder", "~> 0.3.0"
37
+
38
+ end
data/sig/pg-verify.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module PgVerify
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,226 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pg-verify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Arian Weber
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: ebnf
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.3.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.3.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: rainbow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: config
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 4.2.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 4.2.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: plantuml_builder
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.0
83
+ description:
84
+ email:
85
+ - weber.arian.dev@gmail.com
86
+ executables:
87
+ - pg-verify
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".rspec"
92
+ - Gemfile
93
+ - Gemfile.lock
94
+ - README.md
95
+ - Rakefile
96
+ - bin/console
97
+ - bin/pg-verify.rb
98
+ - bin/setup
99
+ - calc.ebnf
100
+ - data/config/pg-verify.yml
101
+ - data/nusmv.sample.smv
102
+ - data/project-template/.gitignore.resource
103
+ - data/project-template/.pg-verify.yml
104
+ - data/project-template/README.md
105
+ - data/project-template/addon/.keep
106
+ - data/project-template/program-graph.rb.resource
107
+ - devpg
108
+ - doc/examples/railroad_crossing.rb
109
+ - doc/examples/train-tree.rb
110
+ - doc/examples/weidezaun.rb
111
+ - doc/examples/weidezaun.txt
112
+ - doc/expose/definition.png
113
+ - doc/expose/diagram.png
114
+ - doc/expose/expose.md
115
+ - doc/expose/validity.png
116
+ - exe/pg-verify
117
+ - integration_tests/ruby_dsl/001_states.rb
118
+ - integration_tests/ruby_dsl/002_transitions.rb
119
+ - integration_tests/ruby_dsl/003_actions.rb
120
+ - integration_tests/ruby_dsl/004_guards.rb
121
+ - integration_tests/ruby_dsl/005_variables.rb
122
+ - integration_tests/ruby_dsl/006_state_variables.rb
123
+ - integration_tests/ruby_dsl/007_variable_initialization.rb
124
+ - integration_tests/ruby_dsl/008_state_initialization.rb
125
+ - integration_tests/ruby_dsl/009_shared_variables.rb
126
+ - integration_tests/ruby_dsl/010_complex_guards.rb
127
+ - integration_tests/ruby_dsl/011_complex_actions.rb
128
+ - integration_tests/ruby_dsl/012_error_components.rb
129
+ - integration_tests/ruby_dsl/013_hazards.rb
130
+ - integration_tests/ruby_dsl/014_tau_transitions.rb
131
+ - integration_tests/ruby_dsl/015_basic_dcca.rb
132
+ - integration_tests/ruby_dsl/016_pressure_tank.rb
133
+ - lib/pg-verify.rb
134
+ - lib/pg-verify/cli/cli.rb
135
+ - lib/pg-verify/core/cmd_runner.rb
136
+ - lib/pg-verify/core/core.rb
137
+ - lib/pg-verify/core/extensions/array_extensions.rb
138
+ - lib/pg-verify/core/extensions/enumerable_extensions.rb
139
+ - lib/pg-verify/core/extensions/nil_extensions.rb
140
+ - lib/pg-verify/core/extensions/string_extensions.rb
141
+ - lib/pg-verify/core/shell/colorizer.rb
142
+ - lib/pg-verify/core/shell/shell.rb
143
+ - lib/pg-verify/core/util.rb
144
+ - lib/pg-verify/doctor/doctor.rb
145
+ - lib/pg-verify/ebnf_parser/ast.rb
146
+ - lib/pg-verify/ebnf_parser/ebnf_parser.rb
147
+ - lib/pg-verify/ebnf_parser/expression_parser.rb
148
+ - lib/pg-verify/ebnf_parser/expression_parser2.rb
149
+ - lib/pg-verify/ebnf_parser/expressions.ebnf
150
+ - lib/pg-verify/ebnf_parser/expressions.peg
151
+ - lib/pg-verify/ebnf_parser/parser_result.rb
152
+ - lib/pg-verify/interpret/component_context.rb
153
+ - lib/pg-verify/interpret/graph_context.rb
154
+ - lib/pg-verify/interpret/interpret.rb
155
+ - lib/pg-verify/interpret/pg_script.rb
156
+ - lib/pg-verify/interpret/spec/ltl_builder.rb
157
+ - lib/pg-verify/interpret/spec/spec_context.rb
158
+ - lib/pg-verify/interpret/spec/spec_set_context.rb
159
+ - lib/pg-verify/interpret/transition_context.rb
160
+ - lib/pg-verify/model/allocation_set.rb
161
+ - lib/pg-verify/model/assignment.rb
162
+ - lib/pg-verify/model/component.rb
163
+ - lib/pg-verify/model/dcca.rb
164
+ - lib/pg-verify/model/dcca/hazard.rb
165
+ - lib/pg-verify/model/expression.rb
166
+ - lib/pg-verify/model/graph.rb
167
+ - lib/pg-verify/model/model.rb
168
+ - lib/pg-verify/model/parsed_expression.rb
169
+ - lib/pg-verify/model/simulation/trace.rb
170
+ - lib/pg-verify/model/simulation/variable_state.rb
171
+ - lib/pg-verify/model/source_location.rb
172
+ - lib/pg-verify/model/specs/spec.rb
173
+ - lib/pg-verify/model/specs/spec_result.rb
174
+ - lib/pg-verify/model/specs/spec_set.rb
175
+ - lib/pg-verify/model/specs/specification.rb
176
+ - lib/pg-verify/model/transition.rb
177
+ - lib/pg-verify/model/validation/assignment_to_state_variable_validation.rb
178
+ - lib/pg-verify/model/validation/empty_state_set_validation.rb
179
+ - lib/pg-verify/model/validation/errors.rb
180
+ - lib/pg-verify/model/validation/foreign_assignment_validation.rb
181
+ - lib/pg-verify/model/validation/unknown_token_validation.rb
182
+ - lib/pg-verify/model/validation/validation.rb
183
+ - lib/pg-verify/model/variable.rb
184
+ - lib/pg-verify/model/variable_set.rb
185
+ - lib/pg-verify/nusmv/nusmv.rb
186
+ - lib/pg-verify/nusmv/runner.rb
187
+ - lib/pg-verify/puml/puml.rb
188
+ - lib/pg-verify/shell/loading/line_animation.rb
189
+ - lib/pg-verify/shell/loading/loading_animation.rb
190
+ - lib/pg-verify/shell/loading/loading_prompt.rb
191
+ - lib/pg-verify/shell/loading/no_animation.rb
192
+ - lib/pg-verify/shell/shell.rb
193
+ - lib/pg-verify/simulation/simulation.rb
194
+ - lib/pg-verify/simulation/simulator.rb
195
+ - lib/pg-verify/simulation/state.rb
196
+ - lib/pg-verify/transform/hash_transformation.rb
197
+ - lib/pg-verify/transform/nusmv_transformation.rb
198
+ - lib/pg-verify/transform/puml_transformation.rb
199
+ - lib/pg-verify/transform/transform.rb
200
+ - lib/pg-verify/version.rb
201
+ - pg-verify.gemspec
202
+ - sig/pg-verify.rbs
203
+ homepage: https://github.com/ArianWeber/pg-verify
204
+ licenses: []
205
+ metadata:
206
+ homepage_uri: https://github.com/ArianWeber/pg-verify
207
+ post_install_message:
208
+ rdoc_options: []
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: 2.6.0
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ requirements: []
222
+ rubygems_version: 3.3.7
223
+ signing_key:
224
+ specification_version: 4
225
+ summary: Tool for the declaration and transformation of program graphs
226
+ test_files: []