Browse Source

Merge from future

Former-commit-id: a65b09c4e9
main
Mavo 9 years ago
parent
commit
8521abc7ac
  1. 4
      .gitignore
  2. 532
      CMakeLists.txt
  3. 1
      README.md
  4. 35
      doc/build.md
  5. 37
      doc/dependencies.md
  6. 1
      doc/getting-started.md
  7. 52
      examples/benchmarkRegions.sh
  8. 52
      examples/benchmarkRegionsRefinement.sh
  9. 10
      examples/dtmc/crowds/crowds10_5.pm
  10. 8
      examples/dtmc/crowds/crowds15_5.pm
  11. 8
      examples/dtmc/crowds/crowds20_5.pm
  12. 8
      examples/dtmc/crowds/crowds5_5.pm
  13. 18
      examples/fractions.sh
  14. 2604
      examples/jani-examples/beb.jani
  15. 27
      examples/jani-examples/beb.jani.txt
  16. 64
      examples/jani-examples/beb.modest
  17. 27
      examples/jani-examples/beb.modest.txt
  18. 2092
      examples/jani-examples/brp.jani
  19. 63
      examples/jani-examples/brp.jani.txt
  20. 213
      examples/jani-examples/brp.modest
  21. 63
      examples/jani-examples/brp.modest.txt
  22. 2129
      examples/jani-examples/consensus-6.jani
  23. 27
      examples/jani-examples/consensus-6.jani.txt
  24. 157
      examples/jani-examples/consensus-6.modest
  25. 27
      examples/jani-examples/consensus-6.modest.txt
  26. 354
      examples/jani-examples/dice.jani
  27. 29
      examples/jani-examples/dice.jani.txt
  28. 51
      examples/list.sh
  29. 61
      examples/list2.sh
  30. 54
      examples/listBenchmarks.sh
  31. 135
      examples/pdtmc/brp/brp.pm
  32. 2
      examples/pdtmc/brp/brp.prctl
  33. 135
      examples/pdtmc/brp/brp16_2.pm
  34. 135
      examples/pdtmc/brp/brp256_5.pm
  35. 135
      examples/pdtmc/brp/brp512_5.pm
  36. 135
      examples/pdtmc/brp/brp64_4.pm
  37. 137
      examples/pdtmc/brp/brp_128-2.pm
  38. 138
      examples/pdtmc/brp/brp_128-5.pm
  39. 137
      examples/pdtmc/brp/brp_16_2.pm
  40. 137
      examples/pdtmc/brp/brp_256-2.pm
  41. 137
      examples/pdtmc/brp/brp_256-5.pm
  42. 625
      examples/pdtmc/brp/brp_regions.txt
  43. 2
      examples/pdtmc/brp/brp_space.txt
  44. 2
      examples/pdtmc/brp/models
  45. 146
      examples/pdtmc/brp_rewards2/brp_rewards16_2.pm
  46. 146
      examples/pdtmc/brp_rewards2/brp_rewards2.pm
  47. 2
      examples/pdtmc/brp_rewards2/brp_rewards2.prctl
  48. 147
      examples/pdtmc/brp_rewards2/brp_rewards256_5.pm
  49. 625
      examples/pdtmc/brp_rewards2/brp_rewards2_regions.txt
  50. 2
      examples/pdtmc/brp_rewards2/brp_rewards2_space.txt
  51. 147
      examples/pdtmc/brp_rewards2/brp_rewards512_5.pm
  52. 147
      examples/pdtmc/brp_rewards2/brp_rewards64_4.pm
  53. 2
      examples/pdtmc/brp_rewards2/models
  54. 146
      examples/pdtmc/brp_rewards4/brp_rewards16_2.pm
  55. 146
      examples/pdtmc/brp_rewards4/brp_rewards256_5.pm
  56. 146
      examples/pdtmc/brp_rewards4/brp_rewards4.pm
  57. 2
      examples/pdtmc/brp_rewards4/brp_rewards4.prctl
  58. 625
      examples/pdtmc/brp_rewards4/brp_rewards4_regions.txt
  59. 625
      examples/pdtmc/brp_rewards4/brp_rewards4_regions2.txt
  60. 2
      examples/pdtmc/brp_rewards4/brp_rewards4_space.txt
  61. 146
      examples/pdtmc/brp_rewards4/brp_rewards512_5.pm
  62. 146
      examples/pdtmc/brp_rewards4/brp_rewards64_4.pm
  63. 2
      examples/pdtmc/brp_rewards4/models
  64. 194
      examples/pdtmc/crowds/crowds.pm
  65. 1
      examples/pdtmc/crowds/crowds.prctl
  66. 0
      examples/pdtmc/crowds/crowds10_5.pm
  67. 0
      examples/pdtmc/crowds/crowds15_5.pm
  68. 0
      examples/pdtmc/crowds/crowds20_5.pm
  69. 0
      examples/pdtmc/crowds/crowds3_5.pm
  70. 0
      examples/pdtmc/crowds/crowds5_5.pm
  71. 625
      examples/pdtmc/crowds/crowds_regions.txt
  72. 2
      examples/pdtmc/crowds/crowds_space.txt
  73. 2
      examples/pdtmc/crowds/models
  74. 2
      examples/pdtmc/nand/models
  75. 75
      examples/pdtmc/nand/nand.pm
  76. 1
      examples/pdtmc/nand/nand.prctl
  77. 0
      examples/pdtmc/nand/nand10_1.pm
  78. 0
      examples/pdtmc/nand/nand10_2.pm
  79. 0
      examples/pdtmc/nand/nand10_3.pm
  80. 0
      examples/pdtmc/nand/nand10_4.pm
  81. 0
      examples/pdtmc/nand/nand10_5.pm
  82. 0
      examples/pdtmc/nand/nand20_1.pm
  83. 0
      examples/pdtmc/nand/nand20_2.pm
  84. 0
      examples/pdtmc/nand/nand20_3.pm
  85. 0
      examples/pdtmc/nand/nand20_4.pm
  86. 0
      examples/pdtmc/nand/nand20_5.pm
  87. 625
      examples/pdtmc/nand/nand_regions.txt
  88. 2
      examples/pdtmc/nand/nand_space.txt
  89. 16
      examples/pdtmc/tiny/tiny.pm
  90. 51
      examples/plot.sh
  91. 139
      examples/pmdp/brp/brp.pm
  92. 2
      examples/pmdp/brp/brp.prctl
  93. 139
      examples/pmdp/brp/brp16_2.pm
  94. 139
      examples/pmdp/brp/brp256_5.pm
  95. 139
      examples/pmdp/brp/brp512_5.pm
  96. 139
      examples/pmdp/brp/brp64_4.pm
  97. 625
      examples/pmdp/brp/brp_regions.txt
  98. 2
      examples/pmdp/brp/brp_space.txt
  99. 2
      examples/pmdp/brp/models
  100. 56
      examples/pmdp/coin2/coin2.pm

4
.gitignore

@ -46,7 +46,7 @@ build//CMakeLists.txt
*.*~ *.*~
# CMake generated/configured files # CMake generated/configured files
src/utility/storm-version.cpp src/utility/storm-version.cpp
nbproject/
.DS_Store .DS_Store
.idea .idea
*.out *.out

532
CMakeLists.txt

@ -9,10 +9,12 @@ include_directories("${PROJECT_SOURCE_DIR}/src")
# Add the resources/cmake folder to Module Search Path for FindTBB.cmake # Add the resources/cmake folder to Module Search Path for FindTBB.cmake
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/resources/cmake/") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/resources/cmake/find_modules" "${PROJECT_SOURCE_DIR}/resources/cmake/macros")
include(ExternalProject) include(ExternalProject)
include(RegisterSourceGroup)
############################################################# #############################################################
## ##
## CMake options of StoRM ## CMake options of StoRM
@ -20,6 +22,7 @@ include(ExternalProject)
############################################################# #############################################################
option(STORM_DEVELOPER "Sets whether the development mode is used" OFF) option(STORM_DEVELOPER "Sets whether the development mode is used" OFF)
option(STORM_USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON) option(STORM_USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON)
MARK_AS_ADVANCED(STORM_USE_POPCNT)
option(USE_BOOST_STATIC_LIBRARIES "Sets whether the Boost libraries should be linked statically." ON) option(USE_BOOST_STATIC_LIBRARIES "Sets whether the Boost libraries should be linked statically." ON)
option(STORM_USE_INTELTBB "Sets whether the Intel TBB libraries should be used." OFF) option(STORM_USE_INTELTBB "Sets whether the Intel TBB libraries should be used." OFF)
option(STORM_USE_GUROBI "Sets whether Gurobi should be used." OFF) option(STORM_USE_GUROBI "Sets whether Gurobi should be used." OFF)
@ -29,8 +32,10 @@ option(USE_LIBCXX "Sets whether the standard library is libc++." OFF)
option(USE_CARL "Sets whether carl should be included." ON) option(USE_CARL "Sets whether carl should be included." ON)
option(USE_XERCES "Sets whether xerces should be used." OFF) option(USE_XERCES "Sets whether xerces should be used." OFF)
option(FORCE_COLOR "Force color output" OFF) option(FORCE_COLOR "Force color output" OFF)
mark_as_advanced(FORCE_COLOR)
option(STORM_PYTHON "Builds the API for Python" OFF) option(STORM_PYTHON "Builds the API for Python" OFF)
option(STORM_COMPILE_WITH_CCACHE "Compile using CCache" ON) option(STORM_COMPILE_WITH_CCACHE "Compile using CCache [if found]" ON)
mark_as_advanced(STORM_COMPILE_WITH_CCACHE)
option(STORM_LOG_DISABLE_DEBUG "Disable log and trace message support" OFF) option(STORM_LOG_DISABLE_DEBUG "Disable log and trace message support" OFF)
set(BOOST_ROOT "" CACHE STRING "A hint to the root directory of Boost (optional).") set(BOOST_ROOT "" CACHE STRING "A hint to the root directory of Boost (optional).")
set(GUROBI_ROOT "" CACHE STRING "A hint to the root directory of Gurobi (optional).") set(GUROBI_ROOT "" CACHE STRING "A hint to the root directory of Gurobi (optional).")
@ -40,6 +45,11 @@ set(MSAT_ROOT "" CACHE STRING "The hint to the root directory of MathSAT (option
set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional directories added to the include directories.") set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional directories added to the include directories.")
set(ADDITIONAL_LINK_DIRS "" CACHE STRING "Additional directories added to the link directories.") set(ADDITIONAL_LINK_DIRS "" CACHE STRING "Additional directories added to the link directories.")
# Set some CMAKE Variables as advanced
mark_as_advanced(CMAKE_OSX_ARCHITECTURES)
mark_as_advanced(CMAKE_OSX_SYSROOT)
mark_as_advanced(CMAKE_OSX_DEPLOYMENT_TARGET)
# If the STORM_DEVELOPER option was turned on, we will target a debug version. # If the STORM_DEVELOPER option was turned on, we will target a debug version.
if (STORM_DEVELOPER) if (STORM_DEVELOPER)
message(STATUS "StoRM - Using development mode") message(STATUS "StoRM - Using development mode")
@ -50,6 +60,7 @@ message(STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version.")
if(STORM_COMPILE_WITH_CCACHE) if(STORM_COMPILE_WITH_CCACHE)
find_program(CCACHE_FOUND ccache) find_program(CCACHE_FOUND ccache)
mark_as_advanced(CCACHE_FOUND)
if(CCACHE_FOUND) if(CCACHE_FOUND)
message(STATUS "StoRM - Using ccache") message(STATUS "StoRM - Using ccache")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
@ -113,10 +124,17 @@ if(CMAKE_COMPILER_IS_GNUCC)
# Set standard flags for GCC # Set standard flags for GCC
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -funroll-loops") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -funroll-loops")
add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE) # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed:
# https://svn.boost.org/trac/boost/ticket/12349
# Fix thanks to: https://github.com/freeorion/freeorion/issues/777
add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-unknown-pragmas") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-unknown-pragmas")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-deprecated-declarations") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-deprecated-declarations")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
message(FATAL_ERROR "GCC version must be at least 5.0!")
endif()
# Turn on popcnt instruction if desired (yes by default) # Turn on popcnt instruction if desired (yes by default)
if (STORM_USE_POPCNT) if (STORM_USE_POPCNT)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt")
@ -147,6 +165,19 @@ else(CLANG)
set (CLANG ON) set (CLANG ON)
# Set standard flags for clang # Set standard flags for clang
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops -O3") set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops -O3")
if(UNIX AND NOT APPLE)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
message(FATAL_ERROR "Clang version must be at least 3.2!")
endif()
endif()
if(UNIX AND APPLE)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3)
message(FATAL_ERROR "Clang version must be at least 7.3!")
endif()
endif()
if(UNIX AND NOT APPLE AND NOT USE_LIBCXX) if(UNIX AND NOT APPLE AND NOT USE_LIBCXX)
set(CLANG_STDLIB libstdc++) set(CLANG_STDLIB libstdc++)
message(STATUS "StoRM - Linking against libstdc++") message(STATUS "StoRM - Linking against libstdc++")
@ -160,7 +191,10 @@ else(CLANG)
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
endif() endif()
add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE) # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed:
# https://svn.boost.org/trac/boost/ticket/12349
# Fix thanks to: https://github.com/freeorion/freeorion/issues/777
add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-newline-eof -Wno-mismatched-tags -Wno-unused-local-typedefs -ftemplate-depth=1024 -Wno-parentheses-equality") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-newline-eof -Wno-mismatched-tags -Wno-unused-local-typedefs -ftemplate-depth=1024 -Wno-parentheses-equality")
if(FORCE_COLOR) if(FORCE_COLOR)
@ -176,6 +210,7 @@ else(CLANG)
set_source_files_properties(${CONVERSIONHELPER_TARGET} PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing ") set_source_files_properties(${CONVERSIONHELPER_TARGET} PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing ")
endif() endif()
if(CCACHE_FOUND) if(CCACHE_FOUND)
set(STORM_COMPILED_BY "${STORM_COMPILED_BY} (ccache)") set(STORM_COMPILED_BY "${STORM_COMPILED_BY} (ccache)")
endif() endif()
@ -198,485 +233,8 @@ message(STATUS "StoRM - Using Compiler Configuration: ${STORM_COMPILED_BY}")
# In 3rdparty, targets are being defined that can be used # In 3rdparty, targets are being defined that can be used
# in the the system does not have a library # in the the system does not have a library
add_subdirectory(resources/3rdparty) include(resources/3rdparty/CMakeLists.txt)
#############################################################
##
## gmm
##
#############################################################
# Add the shipped version of GMM to the include pathes
set(GMMXX_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/gmm-5.0/include")
include_directories(${GMMXX_INCLUDE_DIR})
#############################################################
##
## gmp
##
#############################################################
# GMP is optional (unless MathSAT is used, see below)
find_package(GMP QUIET)
#############################################################
##
## Boost
##
#############################################################
# Boost Option variables
set(Boost_USE_STATIC_LIBS ${USE_BOOST_STATIC_LIBRARIES})
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.56.0 QUIET REQUIRED)
if ((NOT Boost_LIBRARY_DIRS) OR ("${Boost_LIBRARY_DIRS}" STREQUAL ""))
set(Boost_LIBRARY_DIRS "${Boost_INCLUDE_DIRS}/stage/lib")
endif ()
link_directories(${Boost_LIBRARY_DIRS})
include_directories(${Boost_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${Boost_LIBRARIES})
message(STATUS "StoRM - Using Boost ${Boost_VERSION} (lib ${Boost_LIB_VERSION})")
#message(STATUS "StoRM - BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}")
#message(STATUS "StoRM - BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}")
#############################################################
##
## ExprTk
##
#############################################################
# Use the shipped version of ExprTK
message (STATUS "StoRM - Including ExprTk")
include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk")
#############################################################
##
## Z3 (optional)
##
#############################################################
find_package(Z3 QUIET)
# Z3 Defines
set(STORM_HAVE_Z3 ${Z3_FOUND})
if(Z3_FOUND)
message (STATUS "StoRM - Linking with Z3")
include_directories(${Z3_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${Z3_LIBRARIES})
endif(Z3_FOUND)
#############################################################
##
## glpk
##
#############################################################
find_package(GLPK QUIET)
if(GLPK_FOUND)
message (STATUS "StoRM - Using system version of GLPK")
else()
message (STATUS "StoRM - Using shipped version of GLPK")
set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT})
set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include)
set(GLPK_VERSION_STRING 4.57)
add_dependencies(resources glpk)
endif()
# Since there is a shipped version, always use GLPK
set(STORM_HAVE_GLPK ON)
message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}")
include_directories(${GLPK_INCLUDE_DIR})
list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES})
#############################################################
##
## Gurobi (optional)
##
#############################################################
if (STORM_USE_GUROBI)
find_package(Gurobi QUIET REQUIRED)
set(STORM_HAVE_GUROBI ${GUROBI_FOUND})
if (GUROBI_FOUND)
message (STATUS "StoRM - Linking with Gurobi")
include_directories(${GUROBI_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${GUROBI_LIBRARY})
#link_directories("${GUROBI_ROOT}/lib")
else()
#message(FATAL_ERROR "StoRM - Gurobi was requested, but not found!")
endif()
else()
set(STORM_HAVE_GUROBI OFF)
endif()
#############################################################
##
## CUDD
##
#############################################################
# Do not use system CUDD, StoRM has a modified version
set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include)
set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT})
set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT})
set(CUDD_VERSION_STRING 3.0.0)
list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY})
add_dependencies(resources cudd3)
message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}")
#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}")
include_directories(${CUDD_INCLUDE_DIR})
#############################################################
##
## CLN
##
#############################################################
find_package(CLN QUIET)
if(CLN_FOUND)
set(STORM_HAVE_CLN ON)
message(STATUS "StoRM - Linking with CLN ${CLN_VERSION_STRING}")
include_directories("${CLN_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${CLN_LIBRARIES})
else()
set(STORM_HAVE_CLN OFF)
if(NOT GMP_FOUND)
message(FATAL_ERROR "StoRM - Neither CLN nor GMP found")
endif()
endif()
#############################################################
##
## carl
##
#############################################################
set(STORM_HAVE_CARL OFF)
if(USE_CARL)
find_package(carl QUIET REQUIRED)
if(carl_FOUND)
set(STORM_HAVE_CARL ON)
message(STATUS "StoRM - Linking with carl ${carl_VERSION_STRING}")
include_directories("${carl_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES})
else()
message(FATAL_ERROR "StoRM - CARL was requested but not found")
endif()
endif()
#############################################################
##
## SMT-RAT
##
#############################################################
# No find routine yet
#find_package(smtrat QUIET)
# Not yet supported
set(smtrat_FOUND OFF)
set(STORM_HAVE_SMTRAT OFF)
if(smtrat_FOUND)
set(STORM_HAVE_SMTRAT ON)
message(STATUS "StoRM - Linking with smtrat.")
include_directories("${smtrat_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${smtrat_LIBRARIES})
endif()
#############################################################
##
## GiNaC
##
#############################################################
find_package(GiNaC QUIET)
if(GINAC_FOUND)
set(STORM_HAVE_GINAC ON)
message(STATUS "StoRM - Linking with GiNaC ${GINAC_VERSION_STRING}")
# Right now only link with GiNaC for carl
#include_directories("${GINAC_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${GINAC_LIBRARIES})
else()
set(STORM_HAVE_GINAC OFF)
#TODO: Check if CARL actually requires the use of GiNaC
endif()
#############################################################
##
## MathSAT (optional)
##
#############################################################
if ("${MSAT_ROOT}" STREQUAL "")
set(ENABLE_MSAT OFF)
else()
set(ENABLE_MSAT ON)
endif()
# MathSAT Defines
set(STORM_HAVE_MSAT ${ENABLE_MSAT})
if (ENABLE_MSAT)
message (STATUS "StoRM - Linking with MathSAT")
link_directories("${MSAT_ROOT}/lib")
include_directories("${MSAT_ROOT}/include")
list(APPEND STORM_LINK_LIBRARIES "mathsat")
if(GMP_FOUND)
include_directories("${GMP_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES "gmp")
elseif(MPIR_FOUND)
include_directories("${GMP_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES "mpir" "mpirxx")
else(GMP_FOUND)
message(FATAL_ERROR "GMP is required for MathSAT, but was not found!")
endif(GMP_FOUND)
endif(ENABLE_MSAT)
#############################################################
##
## Xerces
##
#############################################################
if(USE_XERCES)
find_package(Xerces QUIET REQUIRED)
if(XERCES_FOUND)
message(STATUS "StoRM - Use system version of xerces")
else()
message(STATUS "StoRM - Use shipped version of xerces")
set(XERCES_ROOT ${CMAKE_BINARY_DIR}/resources/3rdparty/xercesc-3.1.2)
set(XERCESC_INCLUDE ${XERCES_ROOT}/include)
set(XERCES_LIBRARY_PATH ${XERCES_ROOT}/lib)
set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a)
add_dependencies(resources xercesc)
endif()
message (STATUS "StoRM - Linking with xercesc")
set(STORM_HAVE_XERCES ON)
include_directories(${XERCESC_INCLUDE})
list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES})
endif(USE_XERCES)
#############################################################
##
## Sylvan
##
#############################################################
message(STATUS "StoRM - Using shipped version of sylvan")
message(STATUS "StoRM - Linking with sylvan")
include_directories("${Sylvan_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${Sylvan_LIBRARY})
add_dependencies(resources sylvan)
if(${OPERATING_SYSTEM} MATCHES "Linux")
find_package(Hwloc QUIET REQUIRED)
if(Hwloc_FOUND)
message(STATUS "StoRM - Linking with hwloc ${Hwloc_VERSION}")
list(APPEND STORM_LINK_LIBRARIES ${Hwloc_LIBRARIES})
else()
message(FATAL_ERROR "HWLOC is required but was not found.")
endif()
endif()
#############################################################
##
## Google Test gtest
##
#############################################################
add_dependencies(test-resources googletest)
list(APPEND STORM_TEST_LINK_LIBRARIES ${GTEST_LIBRARIES})
#############################################################
##
## Intel Threading Building Blocks (optional)
##
#############################################################
set(STORM_HAVE_INTELTBB OFF)
if (STORM_USE_INTELTBB)
# Point to shipped TBB directory
set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_merged-win-lin-mac")
find_package(TBB QUIET REQUIRED)
if (TBB_FOUND)
message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.")
message(STATUS "StoRM - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.")
set(STORM_HAVE_INTELTBB ON)
link_directories(${TBB_LIBRARY_DIRS})
include_directories(${TBB_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc)
else(TBB_FOUND)
message(FATAL_ERROR "StoRM - TBB was requested, but not found!")
endif(TBB_FOUND)
endif(STORM_USE_INTELTBB)
#############################################################
##
## Threads
##
#############################################################
find_package(Threads QUIET REQUIRED)
if (NOT Threads_FOUND)
message(FATAL_ERROR "StoRM - Threads was requested, but not found!")
endif()
include_directories(${THREADS_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
if (STORM_USE_COTIRE)
target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT})
endif(STORM_USE_COTIRE)
if (MSVC)
# Add the DebugHelper DLL
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} Dbghelp.lib")
target_link_libraries(storm "Dbghelp.lib")
endif(MSVC)
#############################################################
##
## CUDA Library generation
##
#############################################################
if ("${CUDA_ROOT}" STREQUAL "")
set(ENABLE_CUDA OFF)
else()
set(ENABLE_CUDA ON)
endif()
# CUDA Defines
if (ENABLE_CUDA)
set(STORM_CPP_CUDA_DEF "define")
else()
set(STORM_CPP_CUDA_DEF "undef")
endif()
# CUDA Defines
set(STORM_CPP_CUDAFORSTORM_DEF "undef")
if(ENABLE_CUDA)
# Test for type alignment
try_run(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT
${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp"
COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR
)
if(NOT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT)
message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
elseif(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT EQUAL 0)
message(STATUS "StoRM (CudaPlugin) - Result of Type Alignment Check: OK.")
else()
message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})")
endif()
# Test for Float 64bit Alignment
try_run(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT
${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp"
COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR
)
if(NOT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT)
message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}")
elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 2)
message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment active.")
set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "define")
elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 3)
message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment disabled.")
set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "undef")
else()
message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Float Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_FLOATALIGNMENT})")
endif()
#
# Make a version file containing the current version from git.
#
include(GetGitRevisionDescription)
git_describe_checkout(STORM_GIT_VERSION_STRING)
# Parse the git Tag into variables
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" STORM_CUDAPLUGIN_VERSION_MAJOR "${STORM_GIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_MINOR "${STORM_GIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_PATCH "${STORM_GIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+)\\-.*" "\\1" STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD "${STORM_GIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-([a-z0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_HASH "${STORM_GIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-[a-z0-9]+\\-(.*)" "\\1" STORM_CUDAPLUGIN_VERSION_APPENDIX "${STORM_GIT_VERSION_STRING}")
if ("${STORM_CUDAPLUGIN_VERSION_APPENDIX}" MATCHES "^.*dirty.*$")
set(STORM_CUDAPLUGIN_VERSION_DIRTY 1)
else()
set(STORM_CUDAPLUGIN_VERSION_DIRTY 0)
endif()
message(STATUS "StoRM (CudaPlugin) - Version information: ${STORM_CUDAPLUGIN_VERSION_MAJOR}.${STORM_CUDAPLUGIN_VERSION_MINOR}.${STORM_CUDAPLUGIN_VERSION_PATCH} (${STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CUDAPLUGIN_VERSION_HASH} (Dirty: ${STORM_CUDAPLUGIN_VERSION_DIRTY})")
# Configure a header file to pass some of the CMake settings to the source code
configure_file (
"${PROJECT_SOURCE_DIR}/cuda/storm-cudaplugin-config.h.in"
"${PROJECT_BINARY_DIR}/include/storm-cudaplugin-config.h"
)
#create library
find_package(CUDA REQUIRED)
set(CUSP_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/resources/3rdparty/cusplibrary")
find_package(Cusp REQUIRED)
find_package(Thrust REQUIRED)
set(STORM_CUDA_LIB_NAME "storm-cuda")
file(GLOB_RECURSE STORM_CUDA_KERNEL_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.cu)
file(GLOB_RECURSE STORM_CUDA_HEADER_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.h)
source_group(kernels FILES ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES})
include_directories(${PROJECT_SOURCE_DIR}/cuda/kernels/)
#set(CUDA_PROPAGATE_HOST_FLAGS OFF)
set(CUDA_NVCC_FLAGS "-arch=sm_30")
#############################################################
##
## CUSP
##
#############################################################
if(CUSP_FOUND)
include_directories(${CUSP_INCLUDE_DIR})
cuda_include_directories(${CUSP_INCLUDE_DIR})
message(STATUS "StoRM (CudaPlugin) - Found CUSP Version ${CUSP_VERSION} in location ${CUSP_INCLUDE_DIR}")
else()
message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find CUSP!")
endif()
#############################################################
##
## Thrust
##
#############################################################
if(THRUST_FOUND)
include_directories(${THRUST_INCLUDE_DIR})
cuda_include_directories(${THRUST_INCLUDE_DIR})
message(STATUS "StoRM (CudaPlugin) - Found Thrust Version ${THRUST_VERSION} in location ${THRUST_INCLUDE_DIR}")
else()
message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find Thrust! Check your CUDA installation.")
endif()
include_directories(${CUDA_INCLUDE_DIRS})
include_directories(${ADDITIONAL_INCLUDE_DIRS})
cuda_add_library(${STORM_CUDA_LIB_NAME}
${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES}
)
message (STATUS "StoRM - Linking with CUDA")
list(APPEND STORM_LINK_LIBRARIES ${STORM_CUDA_LIB_NAME})
include_directories("${PROJECT_SOURCE_DIR}/cuda/kernels/")
endif()
############################################################# #############################################################
## ##
@ -714,13 +272,13 @@ endif(LINK_LIBCXXABI)
## ##
############################################################# #############################################################
find_package(Doxygen REQUIRED) find_package(Doxygen)
# Add a target to generate API documentation with Doxygen # Add a target to generate API documentation with Doxygen
if(DOXYGEN_FOUND) if(DOXYGEN_FOUND)
set(CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc") set(CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc")
string(REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${PROJECT_SOURCE_DIR}/src") string(REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${PROJECT_SOURCE_DIR}/src")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/resources/doxygen/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)
add_custom_target(doc ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" COMMENT "Generating API documentation with Doxygen" VERBATIM) add_custom_target(doc ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif(DOXYGEN_FOUND) endif(DOXYGEN_FOUND)
@ -783,6 +341,6 @@ add_custom_target(memcheck-functional-tests valgrind --leak-check=full --show-re
add_custom_target(memcheck-performance-tests valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm-performance-tests -v --fix-deadlocks DEPENDS storm-performance-tests) add_custom_target(memcheck-performance-tests valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm-performance-tests -v --fix-deadlocks DEPENDS storm-performance-tests)
set(CPPLINT_ARGS --filter=-whitespace/tab,-whitespace/line_length,-legal/copyright,-readability/streams) set(CPPLINT_ARGS --filter=-whitespace/tab,-whitespace/line_length,-legal/copyright,-readability/streams)
add_custom_target(style python cpplint.py ${CPPLINT_ARGS} `find ./src/ -iname "*.h" -or -iname "*.cpp" `) add_custom_target(style python resources/3rdparty/cpplint/cpplint.py ${CPPLINT_ARGS} `find ./src/ -iname "*.h" -or -iname "*.cpp" `)
include(StormCPackConfig.cmake) include(StormCPackConfig.cmake)

1
README.md

@ -0,0 +1 @@
For more instructions, check out the documentation found in [Getting Started](doc/getting-started.md)

35
doc/build.md

@ -0,0 +1,35 @@
# Building Storm
## Requirements
CMake >= 2.8.11
CMake is required as it is used to generate the Makefiles or Projects/Solutions required to build StoRM.
### Compiler:
A C++11 compliant compiler is required to build StoRM. It is tested and known to work with the following compilers:
- GCC 5.3
- Clang 3.5.0
Other versions or compilers might work, but are not tested.
The following Compilers are known NOT to work:
- Microsoft Visual Studio versions older than 2013,
- GCC versions 4.9.1 and older.
Prerequisites:
Boost >= 1.60
Build using the Boost Build system, for x64 use "bjam address-model=64" or "bjam.exe address-model=64 --build-type=complete"
## Instructions
### General
> mkdir build
It is recommended to make an out-of-source build, meaning that the folder in which CMake generates its Cache, Makefiles and output files should not be the Project Root nor its Source Directory.
A typical build layout is to create a folder "build" in the project root alongside the CMakeLists.txt file, change into this folder and execute "cmake .." as this will leave all source files untouched
and makes cleaning up the build tree very easy.
There are several options available for the CMake Script as to control behaviour and included components.
If no error occured during the last CMake Configure round, press Generate.
Now you can build StoRM using the generated project/makefiles in the Build folder you selected.

37
doc/dependencies.md

@ -0,0 +1,37 @@
# Dependencies
## Included Dependencies:
- Carl 1.0
- CUDD 3.0.0
CUDD is included in the StoRM Sources under /resources/3rdparty/cudd-2.5.0 and builds automatically alongside StoRM.
Its Sourced where heavily modified as to incorporate newer Versions of Boost, changes in C++ (TR1 to C++11) and
to remove components only available under UNIX.
- Eigen 3.3 beta1
Eigen is included in the StoRM Sources under /resources/3rdparty/eigen and builds automatically alongside StoRM.
- GTest 1.7.0
GTest is included in the StoRM Sources under /resources/3rdparty/gtest-1.7.0 and builds automatically alongside StoRM
- GMM >= 4.2
GMM is included in the StoRM Sources under /resources/3rdparty/gmm-4.2 and builds automatically alongside StoRM.
## Optional:
- Gurobi >= 5.6.2
Specify the path to the gurobi root dir using -DGUROBI_ROOT=/your/path/to/gurobi
- Z3 >= 4.3.2
Specify the path to the z3 root dir using -DZ3_ROOT=/your/path/to/z3
- MathSAT >= 5.2.11
Specify the path to the mathsat root dir using -DMSAT_ROOT=/your/path/to/mathsat
- MPIR >= 2.7.0
MSVC only and only if linked with MathSAT
Specify the path to the gmp-include directory -DGMP_INCLUDE_DIR=/your/path/to/mathsat
Specify the path to the mpir.lib directory -DGMP_MPIR_LIBRARY=/your/path/to/mpir.lib
Specify the path to the mpirxx.lib directory -DGMP_MPIRXX_LIBRARY=/your/path/to/mpirxx.lib
- GMP
clang and gcc only
- CUDA Toolkit >= 6.5
Specify the path to the cuda toolkit root dir using -DCUDA_ROOT=/your/path/to/cuda
- CUSP >= 0.4.0
Only of built with CUDA Toolkit
CUSP is included in the StoRM Sources as a git-submodule unter /resources/3rdparty/cusplibrary

1
doc/getting-started.md

@ -0,0 +1 @@

52
examples/benchmarkRegions.sh

@ -0,0 +1,52 @@
#!/bin/bash
if [ "$#" != 1 ];
then
echo "Wrong number of arguments! Provide a filename for the results!"
elif [ -a $1 ]; then
echo "File for results already exists!"
else
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
executable=$DIR/../build/src/storm
timeout="timeout 3600"
declare -a modeltypes=("pdtmc" "pmdp")
for modeltype in "${modeltypes[@]}"
do
if [ "$modeltype" == "pdtmc" ];
then
declare -a models=("crowds" "nand" "brp_rewards2" "brp_rewards4" "brp")
dobisim="-bisim"
else
declare -a models=("brp" "coin2" "coin4" "zeroconf" "reporter2" "reporter4")
dobisim=""
fi
for model in "${models[@]}"
do
modelfolder="$DIR/$modeltype/$model"
suffix="-"
while read instance;
do
suffix="1$suffix"
echo "Working on $modelfolder/$instance"
echo "___WORKING ON $modeltype: $instance""____________" >>$1$suffix
echo "_________________________________________________________________________________" >> $1$suffix
$timeout "$executable" -s $modelfolder/$instance $dobisim --prop $modelfolder/$model.prctl --parametric --parametricRegion --region:regionfile $modelfolder/$model"_regions.txt" >> $1$suffix &
done < "$modelfolder/models"
wait
# write logs into result file
suffix="-"
while read instance;
do
suffix="1$suffix"
cat $1$suffix >> $1
rm $1$suffix
done < "$modelfolder/models"
done
done
fi

52
examples/benchmarkRegionsRefinement.sh

@ -0,0 +1,52 @@
#!/bin/bash
if [ "$#" != 1 ];
then
echo "Wrong number of arguments! Provide a filename for the results!"
elif [ -a $1 ]; then
echo "File for results already exists!"
else
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
executable=$DIR/../build/src/storm
timeout="timeout 3600"
declare -a modeltypes=("pdtmc" "pmdp")
for modeltype in "${modeltypes[@]}"
do
if [ "$modeltype" == "pdtmc" ];
then
declare -a models=("crowds" "nand" "brp_rewards2" "brp_rewards4" "brp")
dobisim="-bisim"
else
declare -a models=("brp" "coin2" "coin4" "zeroconf" "reporter2" "reporter4")
dobisim=""
fi
for model in "${models[@]}"
do
modelfolder="$DIR/$modeltype/$model"
suffix="-"
while read instance;
do
suffix="1$suffix"
echo "Working on $modelfolder/$instance"
echo "___WORKING ON $modeltype: $instance""____________" >>$1$suffix
echo "_________________________________________________________________________________" >> $1$suffix
$timeout "$executable" -s $modelfolder/$instance $dobisim --prop $modelfolder/$model.prctl --parametric --parametricRegion --region:regionfile $modelfolder/$model"_space.txt" --region:refinement 0.05 --region:samplemode off >> "$1$suffix" &
done < "$modelfolder/models"
wait
# write logs into result file
suffix="-"
while read instance;
do
suffix="1$suffix"
cat $1$suffix >> $1
rm $1$suffix
done < "$modelfolder/models"
done
done
fi

10
examples/dtmc/crowds/crowds10_5.pm

@ -1,12 +1,12 @@
dtmc dtmc
// probability of forwarding // probability of forwarding
const double PF = 0.8; const double PF = 4/5;
const double notPF = .2; // must be 1-PF const double notPF = 1/5; // must be 1-PF
// probability that a crowd member is bad // probability that a crowd member is bad
const double badC = .167; const double badC = 167/1000;
// probability that a crowd member is good // probability that a crowd member is good
const double goodC = 0.833; const double goodC = 833/1000;
// Total number of protocol runs to analyze // Total number of protocol runs to analyze
const int TotalRuns = 5; const int TotalRuns = 5;
// size of the crowd // size of the crowd
@ -77,4 +77,4 @@ endmodule
label "observe0Greater1" = observe0 > 1; label "observe0Greater1" = observe0 > 1;
label "observeIGreater1" = observe1 > 1 | observe2 > 1 | observe3 > 1 | observe4 > 1 | observe5 > 1 | observe6 > 1 | observe7 > 1 | observe8 > 1 | observe9 > 1; label "observeIGreater1" = observe1 > 1 | observe2 > 1 | observe3 > 1 | observe4 > 1 | observe5 > 1 | observe6 > 1 | observe7 > 1 | observe8 > 1 | observe9 > 1;
label "observeOnlyTrueSender" = observe0 > 1 & observe1 <= 1 & observe2 <= 1 & observe3 <= 1 & observe4 <= 1 & observe5 <= 1 & observe6 <= 1 & observe7 <= 1 & observe8 <= 1 & observe9 <= 1; label "observeOnlyTrueSender" = observe0 > 1 & observe1 <= 1 & observe2 <= 1 & observe3 <= 1 & observe4 <= 1 & observe5 <= 1 & observe6 <= 1 & observe7 <= 1 & observe8 <= 1 & observe9 <= 1;

8
examples/dtmc/crowds/crowds15_5.pm

@ -1,12 +1,12 @@
dtmc dtmc
// probability of forwarding // probability of forwarding
const double PF = 0.8; const double PF = 4/5;
const double notPF = 0.2; // must be 1-PF const double notPF = 1/5; // must be 1-PF
// probability that a crowd member is bad // probability that a crowd member is bad
const double badC = 0.167; const double badC = 167/1000;
// probability that a crowd member is good // probability that a crowd member is good
const double goodC = 0.833; const double goodC = 833/1000;
// Total number of protocol runs to analyze // Total number of protocol runs to analyze
const int TotalRuns = 5; const int TotalRuns = 5;
// size of the crowd // size of the crowd

8
examples/dtmc/crowds/crowds20_5.pm

@ -1,12 +1,12 @@
dtmc dtmc
// probability of forwarding // probability of forwarding
const double PF = 0.8; const double PF = 4/5;
const double notPF = 0.2; // must be 1-PF const double notPF = 1/5; // must be 1-PF
// probability that a crowd member is bad // probability that a crowd member is bad
const double badC = 0.167; const double badC = 167/1000;
// probability that a crowd member is good // probability that a crowd member is good
const double goodC = 0.833; const double goodC = 833/1000;
// Total number of protocol runs to analyze // Total number of protocol runs to analyze
const int TotalRuns = 5; const int TotalRuns = 5;
// size of the crowd // size of the crowd

8
examples/dtmc/crowds/crowds5_5.pm

@ -1,12 +1,12 @@
dtmc dtmc
// probability of forwarding // probability of forwarding
const double PF = 0.8; const double PF = 4/5;
const double notPF = .2; // must be 1-PF const double notPF = 1/5; // must be 1-PF
// probability that a crowd member is bad // probability that a crowd member is bad
const double badC = .167; const double badC = 167/1000;
// probability that a crowd member is good // probability that a crowd member is good
const double goodC = 0.833; const double goodC = 833/1000;
// Total number of protocol runs to analyze // Total number of protocol runs to analyze
const int TotalRuns = 5; const int TotalRuns = 5;
// size of the crowd // size of the crowd

18
examples/fractions.sh

@ -0,0 +1,18 @@
#!/bin/bash
executable="timeout 3600 ../build/src/storm"
arguments=" -i 1000000 --parametric --parametricRegion"
mkdir fractions
# pdtmcs
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=15,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regionfile ./pdtmc/crowds/crowds_regions.txt $arguments | tee ./fractions/pdtmc_crowds.pm-constCrowdSize_15_TotalRuns_5.log
$executable -s ./pdtmc/nand/nand.pm -const N=10,K=5 --prop ./pdtmc/nand/nand.prctl --region:regionfile ./pdtmc/nand/nand_regions.txt $arguments | tee ./fractions/pdtmc_nand.pm-constN_10_K_5.log
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regionfile ./pdtmc/brp_rewards2/brp_rewards2_regions.txt $arguments | tee ./fractions/pdtmc_brp_rewards2.pm-constN_256_MAX_5.log
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regionfile ./pdtmc/brp_rewards4/brp_rewards4_regions.txt $arguments | tee ./fractions/pdtmc_brp_rewards4.pm-constN_256_MAX_5.log
# pmdps
$executable -s ./pmdp/brp/brp.pm -const N=256,MAX=5 --prop ./pmdp/brp/brp.prctl --region:regionfile ./pmdp/brp/brp_regions.txt $arguments | tee ./fractions/pmdp_brp.pm-constN_256_MAX_5.log
$executable -s ./pmdp/coin4/coin4.pm -const K=2 --prop ./pmdp/coin4/coin4.prctl --region:regionfile ./pmdp/coin4/coin4_regions.txt $arguments | tee ./fractions/pmdp_coin4.pm-constK_4.log
$executable -s ./pmdp/zeroconf/zeroconf.pm -const K=2 --prop ./pmdp/zeroconf/zeroconf.prctl --region:regionfile ./pmdp/zeroconf/zeroconf_regions.txt $arguments | tee ./fractions/pmdp_zeroconf.pm-constK_5.log
$executable -s ./pmdp/reporter4/reporter4.pm -const Xsize=6,Ysize=6,MAXTRIES=2,B=2 --prop ./pmdp/reporter4/reporter4.prctl --region:regionfile ./pmdp/reporter4/reporter4_regions.txt $arguments | tee ./fractions/pmdp_reporter4.pm-constXsize_6_Ysize_6_MAXTRIES_2_B_2.log
wait
echo "done"

2604
examples/jani-examples/beb.jani
File diff suppressed because it is too large
View File

27
examples/jani-examples/beb.jani.txt

@ -0,0 +1,27 @@
Peak memory usage: 38 MB
Analysis results for beb.jani
+ State space exploration
States: 4528
Transitions: 4874
Branches: 6899
Time: 0.0 s
Rate: 92408 states/s
+ LineSeized
Probability: 0.9166259765625
Time: 0.1 s
+ Value iteration
Final error: 0
Iterations: 8
Time: 0.0 s
+ GaveUp
Probability: 0.0833740234375
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 9
Time: 0.0 s

64
examples/jani-examples/beb.modest

@ -0,0 +1,64 @@
// Modest MDP model of the bounded exponential backoff procedure (BEB)
// [BFHH11]
action tick, tack, tock;
const int K = 4; // maximum value for backoff
const int N = 3; // number of tries before giving up
const int H = 3; // number of hosts (must correspond to the number of Host() instantiations in the global composition)
int(0..2) cr; // count how many hosts attempt to seize the line in a slot (zero, one, many)
bool line_seized;
bool gave_up;
property LineSeized = Pmax(<> line_seized); // some host managed to seize the line before any other gave up
property GaveUp = Pmax(<> gave_up); // some host gave up before any other managed to seize the line (does not work with POR)
process Clock()
{
tick; tack; tau {= cr = 0 =}; tock; Clock()
}
process Host()
{
int(0..N) na; // nr_attempts 0..N
int(0..K) ev = 2; // exp_val 0..K
int(0..K) wt; // slots_to_wait 0..K
do
{
if(wt > 0)
{
// wait this slot
tick {= wt-- =}
}
else
{
tau {= cr = min(2, cr + 1) =}; // attempt to seize the line
tick;
if(cr == 1)
{
// someone managed to seize the line
tau {= line_seized = true =}; stop
}
else if(na >= N)
{
// maximum number of attempts exceeded
tau {= gave_up = true =}; stop
}
else
{
// backoff
tau {= na++, wt = DiscreteUniform(0, max(0, ev - 1)), ev = min(2 * ev, K) =}
}
};
tack; tock
}
}
par
{
:: Clock()
:: Host()
:: Host()
:: Host()
}

27
examples/jani-examples/beb.modest.txt

@ -0,0 +1,27 @@
Peak memory usage: 39 MB
Analysis results for beb.modest
+ State space exploration
States: 4528
Transitions: 4874
Branches: 6899
Time: 0.0 s
Rate: 94333 states/s
+ LineSeized
Probability: 0.9166259765625
Time: 0.1 s
+ Value iteration
Final error: 0
Iterations: 8
Time: 0.0 s
+ GaveUp
Probability: 0.0833740234375
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 9
Time: 0.0 s

2092
examples/jani-examples/brp.jani
File diff suppressed because it is too large
View File

63
examples/jani-examples/brp.jani.txt

@ -0,0 +1,63 @@
Peak memory usage: 39 MB
Analysis results for brp.jani
+ State space exploration
States: 3959
Transitions: 4244
Branches: 4593
Time: 0.1 s
Rate: 74698 states/s
+ P_A
Probability: 0
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 1
Time: 0.0 s
+ P_B
Probability: 0
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 1
Time: 0.0 s
+ P_1
Probability: 0.000423333443357766
Time: 0.0 s
+ Value iteration
Final error: 2.35005704803786E-07
Iterations: 13
Time: 0.0 s
+ P_2
Probability: 2.64530890961023E-05
Time: 0.0 s
+ Value iteration
Final error: 2.05561452068843E-07
Iterations: 14
Time: 0.0 s
+ P_3
Probability: 0.000185191226393368
Time: 0.0 s
+ Value iteration
Final error: 3.32462409056221E-07
Iterations: 13
Time: 0.0 s
+ P_4
Probability: 8E-06
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 2
Time: 0.0 s

213
examples/jani-examples/brp.modest

@ -0,0 +1,213 @@
// Modest PTA model of the bounded retransmission protocol (BRP)
// [HH09], http://www.modestchecker.net/CaseStudies/BRP/
action put, get, put_k, get_k, put_l, get_l;
action new_file;
action s_ok, s_dk, s_nok, s_restart;
action r_ok, r_inc, r_fst, r_nok, r_timeout;
exception error;
const int N = 16; // number of frames per file
const int MAX = 2; // maximum number of retransmissions per frame
const int TD = 1; // transmission delay
const int TS = 2 * TD + 1; // sender timeout
const int TR = 2 * MAX * TS + 3 * TD; // receiver timeout
const int SYNC = TR;
bool ff, lf, ab; // channel data: first/last frame, alternating bit
int(0..N) i; // sender chunk counter
bool inTransitK = false;
bool inTransitL = false;
bool first_file_done = false;
bool get_k_seen, s_ok_seen, s_nok_seen, s_dk_seen, s_restart_seen, r_ok_seen, r_timeout_seen;
// Invariant (timed) properties (from [BrpOnTime], the TA model)
bool premature_timeout, channel_k_overflow, channel_l_overflow;
// "there is at most one message in transit for each channel"
property T_1 = A[] (!(channel_k_overflow || channel_l_overflow));
// "there is at most one message in transit in total"
property T_2 = A[] (!(inTransitK && inTransitL));
// Assumption (A1): "no premature timeouts"
property T_A1 = A[] (!premature_timeout);
// Assumption (A2): "sender starts new file only after receiver reacted to failure"
// Note that receiver can only notice failure if it received at least one chunk, i.e. get_k_seen
property T_A2 = A[] (!s_restart_seen || !get_k_seen || r_timeout_seen);
// Probabilistic reachability properties (from [D'AJJL01], the RAPTURE/PRISM model)
// property A of [D'AJJL01]: "the maximum probability that eventually the sender reports
// a certain unsuccessful transmission but the receiver got the complete file"
property P_A = Pmax(<>(s_nok_seen && r_ok_seen));
// property B of [D'AJJL01]: "the maximum probability that eventually the sender reports
// a certain successful transmission but the receiver did not get the complete file"
property P_B = Pmax(<>(s_ok_seen && !r_ok_seen));
// property 1 of [D'AJJL01]: "the maximum probability that eventually the sender
// does not report a successful transmission"
property P_1 = Pmax(<>(s_nok_seen || s_dk_seen));
// property 2 of [D'AJJL01]: "the maximum probability that eventually the sender
// reports an uncertainty on the success of the transmission"
property P_2 = Pmax(<>(s_dk_seen));
// property 3 of [D'AJJL01]: "the maximum probability that eventually the sender
// reports an unsuccessful transmission after more than 8 chunks have been sent successfully"
property P_3 = Pmax(<>(s_nok_seen && i > 8));
// property 4 of [D'AJJL01]: "the maximum probability that eventually the receiver
// does not receive any chunk and the sender tried to send a chunk"
property P_4 = Pmax(<>((s_ok_seen || s_nok_seen || s_dk_seen) && !get_k_seen));
process Sender()
{
bool bit;
int(0..MAX) rc;
clock c;
try
{
do {
:: when urgent(i < N) {= i++ =};
do
{
// send frame
invariant(c <= 0) put_k {= ff = (i == 1), lf = (i == N), ab = bit, c = 0 =};
invariant(c <= TS) alt {
:: // receive ack
get_l {= bit = !bit, rc = 0, c = 0 =};
urgent break
:: // timeout
when(c >= TS)
if(rc < MAX)
{
// retry
{= rc++, c = 0 =}
}
else if(i < N)
{
// no retries left
s_nok {= rc = 0, c = 0 =};
urgent throw(error)
}
else
{
// no retries left
s_dk {= rc = 0, c = 0 =};
urgent throw(error)
}
}
}
:: when(i == N)
// file transmission successfully completed
invariant(c <= 0) s_ok {= first_file_done = true =};
urgent break
}
}
catch error
{
// File transfer did not succeed: wait, then restart with next file
invariant(c <= SYNC) when(c >= SYNC)
s_restart {= bit = false, first_file_done = true =}
}
}
process Receiver()
{
bool r_ff, r_lf, r_ab;
bool bit;
clock c;
// receive first frame
if(ff) { get_k {= c = 0, bit = ab, r_ff = ff, r_lf = lf, r_ab = ab =} }
else { get_k {= c = 0, premature_timeout = true =}; stop };
do
{
invariant(c <= 0)
{
if(r_ab != bit)
{
// repetition, re-ack
put_l
}
else
{
// report frame
if(r_lf) { r_ok }
else if(r_ff) { r_fst }
else { r_inc };
put_l {= bit = !bit =}
}
};
invariant(c <= TR)
{
alt {
:: // receive next frame
get_k {= c = 0, r_ff = ff, r_lf = lf, r_ab = ab =}
:: // timeout
when(c == TR)
if(r_lf)
{
// we just got the last frame, though
r_timeout; break
}
else
{
r_nok;
// abort transfer
r_timeout; break
}
}
}
};
Receiver()
}
process ChannelK()
{
clock c;
put_k palt
{
:98: {= c = 0, inTransitK = true =};
invariant(c <= TD) alt {
:: get_k {= inTransitK = false =}
:: put_k {= channel_k_overflow = true =}; stop
}
: 2: {==}
};
ChannelK()
}
process ChannelL()
{
clock c;
put_l palt
{
:99: {= c = 0, inTransitL = true =};
invariant(c <= TD) alt {
:: get_l {= inTransitL = false =}
:: put_l {= channel_l_overflow = true =}; stop
}
: 1: {==}
};
ChannelL()
}
process Observer()
{
alt {
:: get_k {= get_k_seen = true =}
:: s_ok {= s_ok_seen = true =}
:: s_nok {= s_nok_seen = true =}
:: s_dk {= s_dk_seen = true =}
:: s_restart {= s_restart_seen = true =}
:: r_ok {= r_ok_seen = true =}
:: r_timeout {= r_timeout_seen = true =}
};
Observer()
}
par {
:: Sender()
:: Receiver()
:: ChannelK()
:: ChannelL()
:: Observer()
}

63
examples/jani-examples/brp.modest.txt

@ -0,0 +1,63 @@
Peak memory usage: 40 MB
Analysis results for brp.modest
+ State space exploration
States: 3959
Transitions: 4244
Branches: 4593
Time: 0.1 s
Rate: 73315 states/s
+ P_A
Probability: 0
Time: 0.1 s
+ Value iteration
Final error: 0
Iterations: 1
Time: 0.0 s
+ P_B
Probability: 0
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 1
Time: 0.0 s
+ P_1
Probability: 0.000423333443357766
Time: 0.0 s
+ Value iteration
Final error: 2.35005704803786E-07
Iterations: 13
Time: 0.0 s
+ P_2
Probability: 2.64530890961023E-05
Time: 0.0 s
+ Value iteration
Final error: 2.05561452068843E-07
Iterations: 14
Time: 0.0 s
+ P_3
Probability: 0.000185191226393368
Time: 0.0 s
+ Value iteration
Final error: 3.32462409056221E-07
Iterations: 13
Time: 0.0 s
+ P_4
Probability: 8E-06
Time: 0.0 s
+ Value iteration
Final error: 0
Iterations: 2
Time: 0.0 s

2129
examples/jani-examples/consensus-6.jani
File diff suppressed because it is too large
View File

27
examples/jani-examples/consensus-6.jani.txt

@ -0,0 +1,27 @@
Peak memory usage: 530 MB
Analysis results for consensus-6.jani
+ State space exploration
States: 2345194
Transitions: 9418584
Branches: 13891248
Time: 8.7 s
Rate: 270964 states/s
+ C1
Result: True
Time for min. prob. 0 states: 1.6 s
Time for min. prob. 1 states: 0.1 s
Time: 1.7 s
Min. probability: 1
+ C2
Probability: 0.395776147642961
Time for min. prob. 0 states: 2.0 s
Time for min. prob. 1 states: 0.1 s
Time: 125.8 s
+ Value iteration
Final error: 9.96634356860147E-07
Iterations: 2137
Time: 123.8 s

157
examples/jani-examples/consensus-6.modest

@ -0,0 +1,157 @@
// Modest version of http://www.prismmodelchecker.org/casestudies/consensus_prism.php
// Command line: mcsta.exe consensus-6.modest -S Memory --nochainopt --bounded-alg StateElimination -E "K=2"
action done;
// constants
const int N = 6;
const int K = 4;
const int range = 2 * (K + 1) * N;
const int counter_init = (K + 1) * N;
const int left = N;
const int right = 2 * (K + 1) * N - N;
// shared coin
int(0..range) counter = counter_init;
reward coin_flips;
property C1 = P(<> (fin1 == 1 && fin2 == 1 && fin3 == 1 && fin4 == 1 && fin5 == 1 && fin6 == 1)) >= 1;
property C2 = Pmin(<> (fin1 == 1 && fin2 == 1 && fin3 == 1 && fin4 == 1 && fin5 == 1 && fin6 == 1 && coin1 == 1 && coin2 == 1 && coin3 == 1 && coin4 == 1 && coin5 == 1 && coin6 == 1));
int(0..1) fin1, fin2, fin3, fin4, fin5, fin6;
int(0..1) coin1, coin2, coin3, coin4, coin5, coin6;
process Tourist1()
{
process Flip() { palt { :1: {= coin1 = 0, coin_flips++ =} :1: {= coin1 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin1 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin1 == 1 && counter < range) {= counter++, coin1 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin1 = 0, fin1 = 1 =}; Finished()
:: when(counter >= right) {= coin1 = 1, fin1 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist1()
}
}
process Finished() { done; Finished() }
Flip()
}
process Tourist2()
{
process Flip() { palt { :1: {= coin2 = 0, coin_flips++ =} :1: {= coin2 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin2 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin2 == 1 && counter < range) {= counter++, coin2 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin2 = 0, fin2 = 1 =}; Finished()
:: when(counter >= right) {= coin2 = 1, fin2 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist2()
}
}
process Finished() { done; Finished() }
Flip()
}
process Tourist3()
{
process Flip() { palt { :1: {= coin3 = 0, coin_flips++ =} :1: {= coin3 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin3 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin3 == 1 && counter < range) {= counter++, coin3 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin3 = 0, fin3 = 1 =}; Finished()
:: when(counter >= right) {= coin3 = 1, fin3 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist3()
}
}
process Finished() { done; Finished() }
Flip()
}
process Tourist4()
{
process Flip() { palt { :1: {= coin4 = 0, coin_flips++ =} :1: {= coin4 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin4 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin4 == 1 && counter < range) {= counter++, coin4 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin4 = 0, fin4 = 1 =}; Finished()
:: when(counter >= right) {= coin4 = 1, fin4 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist4()
}
}
process Finished() { done; Finished() }
Flip()
}
process Tourist5()
{
process Flip() { palt { :1: {= coin5 = 0, coin_flips++ =} :1: {= coin5 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin5 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin5 == 1 && counter < range) {= counter++, coin5 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin5 = 0, fin5 = 1 =}; Finished()
:: when(counter >= right) {= coin5 = 1, fin5 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist5()
}
}
process Finished() { done; Finished() }
Flip()
}
process Tourist6()
{
process Flip() { palt { :1: {= coin6 = 0, coin_flips++ =} :1: {= coin6 = 1, coin_flips++ =} }; Write() }
process Write() {
alt {
:: when(coin6 == 0 && counter > 0) {= counter-- =}; Check()
:: when(coin6 == 1 && counter < range) {= counter++, coin6 = 0 =}; Check()
}
}
process Check() {
alt {
:: when(counter <= left) {= coin6 = 0, fin6 = 1 =}; Finished()
:: when(counter >= right) {= coin6 = 1, fin6 = 1 =}; Finished()
:: when(counter > left && counter < right) Tourist6()
}
}
process Finished() { done; Finished() }
Flip()
}
par {
:: Tourist1()
:: Tourist2()
:: Tourist3()
:: Tourist4()
:: Tourist5()
:: Tourist6()
}

27
examples/jani-examples/consensus-6.modest.txt

@ -0,0 +1,27 @@
Peak memory usage: 531 MB
Analysis results for consensus-6.modest
+ State space exploration
States: 2345194
Transitions: 9418584
Branches: 13891248
Time: 8.2 s
Rate: 287507 states/s
+ C1
Result: True
Time for min. prob. 0 states: 1.5 s
Time for min. prob. 1 states: 0.2 s
Time: 1.7 s
Min. probability: 1
+ C2
Probability: 0.395776147642961
Time for min. prob. 0 states: 2.0 s
Time for min. prob. 1 states: 0.1 s
Time: 126.8 s
+ Value iteration
Final error: 9.96634356860147E-07
Iterations: 2137
Time: 124.7 s

354
examples/jani-examples/dice.jani

@ -0,0 +1,354 @@
{
"jani-version": 1,
"name": "dice",
"type" : "mdp",
"actions" : [],
"variables" : [
{
"name": "thrownSix",
"type": "bool",
"initial-value": false
},
{
"name": "terminated",
"type": "bool",
"initial-value": false
}
],
"rewards" : [
{
"name" : "step"
}
],
"properties" : [
{
"name" : "ProbThrowSix",
"reach" : "thrownSix",
"type": "probability-max-query"
},
{
"name" : "StepsUntilReach",
"reach" : "terminated",
"reward": "step",
"type": "expected-reachability-reward-max-query"
}
],
"automata" : [
{
"name" : "dice",
"variables" : [
{
"name" : "d",
"type" : {
"kind": "bounded",
"base": "int",
"lower-bound" : 0,
"upper-bound" : 6
},
"initial-value" : 0
}
],
"locations" : [
{
"name" : "s0"
},
{
"name" : "s1"
},
{
"name" : "s2"
},
{
"name" : "s3"
},
{
"name" : "s4"
},
{
"name" : "s5"
},
{
"name" : "s6"
},
{
"name" : "s7"
}
],
"initial-location" : "s0",
"edges" : [
{
"location" : "s0",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s1",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s2",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s1",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s3",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s4",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s2",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s5",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s6",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s3",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s1",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 1
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s4",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 2
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 3
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s5",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 4
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 5
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s6",
"guard" : true,
"destinations" : [
{
"probability" : 0.5,
"location" : "s2",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
},
{
"probability" : 0.5,
"location" : "s7",
"assignments" : [
{
"ref" : "d",
"value" : 6
},
{
"ref" : "thrownSix",
"value" : true
},
{
"ref" : "terminated",
"value" : true
}
],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
},
{
"location" : "s7",
"guard" : true,
"destinations" : [
{
"probability" : 1,
"location" : "s7",
"assignments" : [],
"rewards" : [
{
"ref" : "step",
"value" : 1
}
]
}
]
}
]
}
],
"system" : "dice"
}

29
examples/jani-examples/dice.jani.txt

@ -0,0 +1,29 @@
Peak memory usage: 36 MB
Analysis results for dice.jani
+ State space exploration
States: 8
Transitions: 8
Branches: 14
Time: 0.0 s
Rate: 190 states/s
+ ProbThrowSix
Probability: 0.166666626930237
Time: 0.0 s
+ Value iteration
Final error: 7.15255907834985E-07
Iterations: 11
Time: 0.0 s
+ StepsUntilReach
Value: 3.66666650772095
Time for min. prob. 0 states: 0.0 s
Time for min. prob. 1 states: 0.0 s
Time: 0.0 s
+ Value iteration
Final error: 4.08717619857464E-07
Iterations: 12
Time: 0.0 s

51
examples/list.sh

@ -0,0 +1,51 @@
#!/bin/bash
executable="timeout 3600 ../build/src/storm"
arguments="-bisim -i 1000000 --parametric --parametricRegion --region:refinement 0.05 --region:samplemode off"
mkdir results
# pdtmcs
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=10,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./results/pdtmc_crowds.pm-constCrowdSize_10_TotalRuns_5.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=10 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./results/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_10.log &
$executable -s ./pdtmc/nand/nand.pm -const N=10,K=5 --prop ./pdtmc/nand/nand.prctl --region:regions "0.000010<=perr<=0.999990,0.000010<=prob1<=0.999990;" $arguments | tee ./results/pdtmc_nand.pm-constN_10_K_5.log &
$executable -s ./pdtmc/nand/nand.pm -const N=25,K=5 --prop ./pdtmc/nand/nand.prctl --region:regions "0.000010<=perr<=0.999990,0.000010<=prob1<=0.999990;" $arguments | tee ./results/pdtmc_nand.pm-constN_25_K_5.log &
wait
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=512,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pdtmc_brp_rewards2.pm-constN_512_MAX_5.log &
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=4096,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pdtmc_brp_rewards2.pm-constN_4096_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./results/pdtmc_brp_rewards4.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=5012,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./results/pdtmc_brp_rewards4.pm-constN_5012_MAX_5.log &
$executable -s ./pdtmc/brp/brp.pm -const N=256,MAX=5 --prop ./pdtmc/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pdtmc_brp.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp/brp.pm -const N=4096,MAX=5 --prop ./pdtmc/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pdtmc_brp.pm-constN_4096_MAX_5.log &
wait
# pmdps
arguments="-i 1000000 --parametric --parametricRegion --region:refinement 0.05 --region:samplemode off"
$executable -s ./pmdp/brp/brp.pm -const N=256,MAX=5 --prop ./pmdp/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pmdp_brp.pm-constN_256_MAX_5.log &
$executable -s ./pmdp/brp/brp.pm -const N=4096,MAX=5 --prop ./pmdp/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./results/pmdp_brp.pm-constN_4096_MAX_5.log &
$executable -s ./pmdp/coin2/coin2.pm -const K=2 --prop ./pmdp/coin2/coin2.prctl --region:regions "0.000010<=p1<=0.999990,0.000010<=p2<=0.999990;" $arguments | tee ./results/pmdp_coin2.pm-constK_2.log &
$executable -s ./pmdp/coin2/coin2.pm -const K=32 --prop ./pmdp/coin2/coin2.prctl --region:regions "0.000010<=p1<=0.999990,0.000010<=p2<=0.999990;" $arguments | tee ./results/pmdp_coin2.pm-constK_32.log &
$executable -s ./pmdp/coin4/coin4.pm -const K=2 --prop ./pmdp/coin4/coin4.prctl --region:regions "0.000010<=p1<=0.999990,0.000010<=p2<=0.999990,0.000010<=p3<=0.999990,0.000010<=p4<=0.999990;" $arguments | tee ./results/pmdp_coin4.pm-constK_2.log &
$executable -s ./pmdp/coin4/coin4.pm -const K=4 --prop ./pmdp/coin4/coin4.prctl --region:regions "0.000010<=p1<=0.999990,0.000010<=p2<=0.999990,0.000010<=p3<=0.999990,0.000010<=p4<=0.999990;" $arguments | tee ./results/pmdp_coin4.pm-constK_4.log &
wait
$executable -s ./pmdp/zeroconf/zeroconf.pm -const K=2 --prop ./pmdp/zeroconf/zeroconf.prctl --region:regions "0.000010<=loss<=0.999990,0.000010<=old<=0.999990;" $arguments | tee ./results/pmdp_zeroconf.pm-constK_2.log &
$executable -s ./pmdp/zeroconf/zeroconf.pm -const K=5 --prop ./pmdp/zeroconf/zeroconf.prctl --region:regions "0.000010<=loss<=0.999990,0.000010<=old<=0.999990;" $arguments | tee ./results/pmdp_zeroconf.pm-constK_5.log &
$executable -s ./pmdp/reporter2/reporter2.pm -const Xsize=6,Ysize=6,MAXTRIES=2,B=2 --prop ./pmdp/reporter2/reporter2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pH<=0.999990;" $arguments | tee ./results/pmdp_reporter2.pm-constXsize_6_Ysize_6_MAXTRIES_2_B_2.log &
$executable -s ./pmdp/reporter2/reporter2.pm -const Xsize=100,Ysize=100,MAXTRIES=10,B=10 --prop ./pmdp/reporter2/reporter2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pH<=0.999990;" $arguments | tee ./results/pmdp_reporter2.pm-constXsize_100_Ysize_100_MAXTRIES_10_B_10.log &
$executable -s ./pmdp/reporter4/reporter4.pm -const Xsize=6,Ysize=6,MAXTRIES=2,B=2 --prop ./pmdp/reporter4/reporter4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pH<=0.999990,0.000010<=pLDiff<=0.999990,0.000010<=pHDiff<=0.999990;" $arguments | tee ./results/pmdp_reporter4.pm-constXsize_6_Ysize_6_MAXTRIES_2_B_2.log &
$executable -s ./pmdp/reporter4/reporter4.pm -const Xsize=10,Ysize=10,MAXTRIES=3,B=3 --prop ./pmdp/reporter4/reporter4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pH<=0.999990,0.000010<=pLDiff<=0.999990,0.000010<=pHDiff<=0.999990;" $arguments | tee ./results/pmdp_reporter4.pm-constXsize_10_Ysize_10_MAXTRIES_3_B_3.log &
wait
echo "done!"

61
examples/list2.sh

@ -0,0 +1,61 @@
#!/bin/bash
executable="timeout 3600 ../build/src/storm"
arguments="-i 1000000 --parametric --parametricRegion --region:refinement 0.05 --region:samplemode off"
resultfolder=res
mkdir $resultfolder
# pdtmcs
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=10,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_10_TotalRuns_5.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=15,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_15_TotalRuns_5.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=15,TotalRuns=7 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_15_TotalRuns_7.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_5.log &
wait
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=7 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_7.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=10 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_10.log &
$executable -s ./pdtmc/nand/nand.pm -const N=10,K=5 --prop ./pdtmc/nand/nand.prctl --region:regions "0.000010<=perr<=0.999990,0.000010<=prob1<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_nand.pm-constN_10_K_5.log &
$executable -s ./pdtmc/nand/nand.pm -const N=25,K=5 --prop ./pdtmc/nand/nand.prctl --region:regions "0.000010<=perr<=0.999990,0.000010<=prob1<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_nand.pm-constN_25_K_5.log &
wait
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards2.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=512,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards2.pm-constN_512_MAX_5.log &
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=4096,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards2.pm-constN_4096_MAX_5.log &
wait
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=64,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_64_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=128,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_128_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regionso "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=5012,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regionso "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_5012_MAX_5.log &
wait
$executable -s ./pdtmc/brp/brp.pm -const N=256,MAX=5 --prop ./pdtmc/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp/brp.pm -const N=4096,MAX=5 --prop ./pdtmc/brp/brp.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp.pm-constN_4096_MAX_5.log &
wait
# New instances!!!!! (tested here also with bisim)
arguments="-bisim -i 1000000 --parametric --parametricRegion --region:refinement 0.05 --region:samplemode off"
resultfolder=res_bisim
mkdir $resultfolder
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=15,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_15_TotalRuns_5.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=15,TotalRuns=7 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_15_TotalRuns_7.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=5 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_5.log &
wait
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=7 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_7.log &
$executable -s ./pdtmc/crowds/crowds.pm -const CrowdSize=20,TotalRuns=10 --prop ./pdtmc/crowds/crowds.prctl --region:regions "0.000010<=PF<=0.999990,0.000010<=badC<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_crowds.pm-constCrowdSize_20_TotalRuns_10.log &
wait
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N=256,MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards2.pm-constN_256_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=64,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_64_MAX_5.log &
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N=128,MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regions "0.000010<=pL<=0.999990,0.000010<=pK<=0.999990,0.000010<=TOMsg<=0.999990,0.000010<=TOAck<=0.999990;" $arguments | tee ./$resultfolder/pdtmc_brp_rewards4.pm-constN_128_MAX_5.log &
wait
echo "done!"

54
examples/listBenchmarks.sh

@ -0,0 +1,54 @@
#!/bin/bash
if [ "$#" != 1 ];
then
echo "Wrong number of arguments! Provide a filename for the results!"
elif [ -a $1 ]; then
echo "File for results already exists!"
else
DIR="."
echo '#!/bin/bash' >> $1
echo 'executable="timeout 3600 ../build/src/storm"' >> $1
echo 'arguments="-bisim -i 1000000 --parametric --parametricRegion --region:refinement 0.05 --region:samplemode off"' >> $1
echo "mkdir results" >> $1
declare -a modeltypes=("pdtmc" "pmdp")
for modeltype in "${modeltypes[@]}"
do
if [ "$modeltype" == "pdtmc" ];
then
declare -a models=("crowds" "nand" "brp_rewards2" "brp_rewards4" "brp")
dobisim="-bisim"
else
declare -a models=("brp" "coin2" "coin4" "zeroconf" "reporter2" "reporter4")
dobisim=""
fi
echo "# $modeltype""s" >> $1
for model in "${models[@]}"
do
modelfolder="$DIR/$modeltype/$model"
suffix="-"
while read instance;
do
output='$executable '
output="$output""-s $modelfolder/$instance --prop $modelfolder/$model.prctl --region:regions "
region=$(head -n 1 $modelfolder/$model"_space.txt")
region="$(echo -e "${region}" | tr -d '[[:space:]]')"
output="$output"'"'$region'" $arguments | tee '
instanceString="$(echo -e "${instance}" | tr -d '[[:space:]]')"
instanceString=${instanceString//[,=]/_}
output="$output""./results/$modeltype""_$instanceString.log &"
echo $output >> $1
done < "$modelfolder/models"
done
done
echo 'wait' >> $1
fi

135
examples/pdtmc/brp/brp.pm

@ -0,0 +1,135 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N;
// maximum number of retransmissions
const int MAX;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

2
examples/pdtmc/brp/brp.prctl

@ -0,0 +1,2 @@
P<0.5 [ F s=5 ]

135
examples/pdtmc/brp/brp16_2.pm

@ -0,0 +1,135 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 16;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

135
examples/pdtmc/brp/brp256_5.pm

@ -0,0 +1,135 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

135
examples/pdtmc/brp/brp512_5.pm

@ -0,0 +1,135 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 512;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

135
examples/pdtmc/brp/brp64_4.pm

@ -0,0 +1,135 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 64;
// maximum number of retransmissions
const int MAX = 4;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

137
examples/pdtmc/brp/brp_128-2.pm

@ -1,137 +0,0 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 128;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
label "target" = s = 5;

138
examples/pdtmc/brp/brp_128-5.pm

@ -1,138 +0,0 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 128;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double
pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
label "target" = s = 5;

137
examples/pdtmc/brp/brp_16_2.pm

@ -1,137 +0,0 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 16;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
label "target" = s=5;

137
examples/pdtmc/brp/brp_256-2.pm

@ -1,137 +0,0 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
label "target" = s = 5;

137
examples/pdtmc/brp/brp_256-5.pm

@ -1,137 +0,0 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
label "target" = s = 5;

625
examples/pdtmc/brp/brp_regions.txt

@ -0,0 +1,625 @@
0.000010<=pL<=0.040000, 0.000010<=pK<=0.040000;
0.000010<=pL<=0.040000, 0.040000<=pK<=0.080000;
0.000010<=pL<=0.040000, 0.080000<=pK<=0.120000;
0.000010<=pL<=0.040000, 0.120000<=pK<=0.160000;
0.000010<=pL<=0.040000, 0.160000<=pK<=0.200000;
0.000010<=pL<=0.040000, 0.200000<=pK<=0.240000;
0.000010<=pL<=0.040000, 0.240000<=pK<=0.280000;
0.000010<=pL<=0.040000, 0.280000<=pK<=0.320000;
0.000010<=pL<=0.040000, 0.320000<=pK<=0.360000;
0.000010<=pL<=0.040000, 0.360000<=pK<=0.400000;
0.000010<=pL<=0.040000, 0.400000<=pK<=0.440000;
0.000010<=pL<=0.040000, 0.440000<=pK<=0.480000;
0.000010<=pL<=0.040000, 0.480000<=pK<=0.520000;
0.000010<=pL<=0.040000, 0.520000<=pK<=0.560000;
0.000010<=pL<=0.040000, 0.560000<=pK<=0.600000;
0.000010<=pL<=0.040000, 0.600000<=pK<=0.640000;
0.000010<=pL<=0.040000, 0.640000<=pK<=0.680000;
0.000010<=pL<=0.040000, 0.680000<=pK<=0.720000;
0.000010<=pL<=0.040000, 0.720000<=pK<=0.760000;
0.000010<=pL<=0.040000, 0.760000<=pK<=0.800000;
0.000010<=pL<=0.040000, 0.800000<=pK<=0.840000;
0.000010<=pL<=0.040000, 0.840000<=pK<=0.880000;
0.000010<=pL<=0.040000, 0.880000<=pK<=0.920000;
0.000010<=pL<=0.040000, 0.920000<=pK<=0.960000;
0.000010<=pL<=0.040000, 0.960000<=pK<=0.999990;
0.040000<=pL<=0.080000, 0.000010<=pK<=0.040000;
0.040000<=pL<=0.080000, 0.040000<=pK<=0.080000;
0.040000<=pL<=0.080000, 0.080000<=pK<=0.120000;
0.040000<=pL<=0.080000, 0.120000<=pK<=0.160000;
0.040000<=pL<=0.080000, 0.160000<=pK<=0.200000;
0.040000<=pL<=0.080000, 0.200000<=pK<=0.240000;
0.040000<=pL<=0.080000, 0.240000<=pK<=0.280000;
0.040000<=pL<=0.080000, 0.280000<=pK<=0.320000;
0.040000<=pL<=0.080000, 0.320000<=pK<=0.360000;
0.040000<=pL<=0.080000, 0.360000<=pK<=0.400000;
0.040000<=pL<=0.080000, 0.400000<=pK<=0.440000;
0.040000<=pL<=0.080000, 0.440000<=pK<=0.480000;
0.040000<=pL<=0.080000, 0.480000<=pK<=0.520000;
0.040000<=pL<=0.080000, 0.520000<=pK<=0.560000;
0.040000<=pL<=0.080000, 0.560000<=pK<=0.600000;
0.040000<=pL<=0.080000, 0.600000<=pK<=0.640000;
0.040000<=pL<=0.080000, 0.640000<=pK<=0.680000;
0.040000<=pL<=0.080000, 0.680000<=pK<=0.720000;
0.040000<=pL<=0.080000, 0.720000<=pK<=0.760000;
0.040000<=pL<=0.080000, 0.760000<=pK<=0.800000;
0.040000<=pL<=0.080000, 0.800000<=pK<=0.840000;
0.040000<=pL<=0.080000, 0.840000<=pK<=0.880000;
0.040000<=pL<=0.080000, 0.880000<=pK<=0.920000;
0.040000<=pL<=0.080000, 0.920000<=pK<=0.960000;
0.040000<=pL<=0.080000, 0.960000<=pK<=0.999990;
0.080000<=pL<=0.120000, 0.000010<=pK<=0.040000;
0.080000<=pL<=0.120000, 0.040000<=pK<=0.080000;
0.080000<=pL<=0.120000, 0.080000<=pK<=0.120000;
0.080000<=pL<=0.120000, 0.120000<=pK<=0.160000;
0.080000<=pL<=0.120000, 0.160000<=pK<=0.200000;
0.080000<=pL<=0.120000, 0.200000<=pK<=0.240000;
0.080000<=pL<=0.120000, 0.240000<=pK<=0.280000;
0.080000<=pL<=0.120000, 0.280000<=pK<=0.320000;
0.080000<=pL<=0.120000, 0.320000<=pK<=0.360000;
0.080000<=pL<=0.120000, 0.360000<=pK<=0.400000;
0.080000<=pL<=0.120000, 0.400000<=pK<=0.440000;
0.080000<=pL<=0.120000, 0.440000<=pK<=0.480000;
0.080000<=pL<=0.120000, 0.480000<=pK<=0.520000;
0.080000<=pL<=0.120000, 0.520000<=pK<=0.560000;
0.080000<=pL<=0.120000, 0.560000<=pK<=0.600000;
0.080000<=pL<=0.120000, 0.600000<=pK<=0.640000;
0.080000<=pL<=0.120000, 0.640000<=pK<=0.680000;
0.080000<=pL<=0.120000, 0.680000<=pK<=0.720000;
0.080000<=pL<=0.120000, 0.720000<=pK<=0.760000;
0.080000<=pL<=0.120000, 0.760000<=pK<=0.800000;
0.080000<=pL<=0.120000, 0.800000<=pK<=0.840000;
0.080000<=pL<=0.120000, 0.840000<=pK<=0.880000;
0.080000<=pL<=0.120000, 0.880000<=pK<=0.920000;
0.080000<=pL<=0.120000, 0.920000<=pK<=0.960000;
0.080000<=pL<=0.120000, 0.960000<=pK<=0.999990;
0.120000<=pL<=0.160000, 0.000010<=pK<=0.040000;
0.120000<=pL<=0.160000, 0.040000<=pK<=0.080000;
0.120000<=pL<=0.160000, 0.080000<=pK<=0.120000;
0.120000<=pL<=0.160000, 0.120000<=pK<=0.160000;
0.120000<=pL<=0.160000, 0.160000<=pK<=0.200000;
0.120000<=pL<=0.160000, 0.200000<=pK<=0.240000;
0.120000<=pL<=0.160000, 0.240000<=pK<=0.280000;
0.120000<=pL<=0.160000, 0.280000<=pK<=0.320000;
0.120000<=pL<=0.160000, 0.320000<=pK<=0.360000;
0.120000<=pL<=0.160000, 0.360000<=pK<=0.400000;
0.120000<=pL<=0.160000, 0.400000<=pK<=0.440000;
0.120000<=pL<=0.160000, 0.440000<=pK<=0.480000;
0.120000<=pL<=0.160000, 0.480000<=pK<=0.520000;
0.120000<=pL<=0.160000, 0.520000<=pK<=0.560000;
0.120000<=pL<=0.160000, 0.560000<=pK<=0.600000;
0.120000<=pL<=0.160000, 0.600000<=pK<=0.640000;
0.120000<=pL<=0.160000, 0.640000<=pK<=0.680000;
0.120000<=pL<=0.160000, 0.680000<=pK<=0.720000;
0.120000<=pL<=0.160000, 0.720000<=pK<=0.760000;
0.120000<=pL<=0.160000, 0.760000<=pK<=0.800000;
0.120000<=pL<=0.160000, 0.800000<=pK<=0.840000;
0.120000<=pL<=0.160000, 0.840000<=pK<=0.880000;
0.120000<=pL<=0.160000, 0.880000<=pK<=0.920000;
0.120000<=pL<=0.160000, 0.920000<=pK<=0.960000;
0.120000<=pL<=0.160000, 0.960000<=pK<=0.999990;
0.160000<=pL<=0.200000, 0.000010<=pK<=0.040000;
0.160000<=pL<=0.200000, 0.040000<=pK<=0.080000;
0.160000<=pL<=0.200000, 0.080000<=pK<=0.120000;
0.160000<=pL<=0.200000, 0.120000<=pK<=0.160000;
0.160000<=pL<=0.200000, 0.160000<=pK<=0.200000;
0.160000<=pL<=0.200000, 0.200000<=pK<=0.240000;
0.160000<=pL<=0.200000, 0.240000<=pK<=0.280000;
0.160000<=pL<=0.200000, 0.280000<=pK<=0.320000;
0.160000<=pL<=0.200000, 0.320000<=pK<=0.360000;
0.160000<=pL<=0.200000, 0.360000<=pK<=0.400000;
0.160000<=pL<=0.200000, 0.400000<=pK<=0.440000;
0.160000<=pL<=0.200000, 0.440000<=pK<=0.480000;
0.160000<=pL<=0.200000, 0.480000<=pK<=0.520000;
0.160000<=pL<=0.200000, 0.520000<=pK<=0.560000;
0.160000<=pL<=0.200000, 0.560000<=pK<=0.600000;
0.160000<=pL<=0.200000, 0.600000<=pK<=0.640000;
0.160000<=pL<=0.200000, 0.640000<=pK<=0.680000;
0.160000<=pL<=0.200000, 0.680000<=pK<=0.720000;
0.160000<=pL<=0.200000, 0.720000<=pK<=0.760000;
0.160000<=pL<=0.200000, 0.760000<=pK<=0.800000;
0.160000<=pL<=0.200000, 0.800000<=pK<=0.840000;
0.160000<=pL<=0.200000, 0.840000<=pK<=0.880000;
0.160000<=pL<=0.200000, 0.880000<=pK<=0.920000;
0.160000<=pL<=0.200000, 0.920000<=pK<=0.960000;
0.160000<=pL<=0.200000, 0.960000<=pK<=0.999990;
0.200000<=pL<=0.240000, 0.000010<=pK<=0.040000;
0.200000<=pL<=0.240000, 0.040000<=pK<=0.080000;
0.200000<=pL<=0.240000, 0.080000<=pK<=0.120000;
0.200000<=pL<=0.240000, 0.120000<=pK<=0.160000;
0.200000<=pL<=0.240000, 0.160000<=pK<=0.200000;
0.200000<=pL<=0.240000, 0.200000<=pK<=0.240000;
0.200000<=pL<=0.240000, 0.240000<=pK<=0.280000;
0.200000<=pL<=0.240000, 0.280000<=pK<=0.320000;
0.200000<=pL<=0.240000, 0.320000<=pK<=0.360000;
0.200000<=pL<=0.240000, 0.360000<=pK<=0.400000;
0.200000<=pL<=0.240000, 0.400000<=pK<=0.440000;
0.200000<=pL<=0.240000, 0.440000<=pK<=0.480000;
0.200000<=pL<=0.240000, 0.480000<=pK<=0.520000;
0.200000<=pL<=0.240000, 0.520000<=pK<=0.560000;
0.200000<=pL<=0.240000, 0.560000<=pK<=0.600000;
0.200000<=pL<=0.240000, 0.600000<=pK<=0.640000;
0.200000<=pL<=0.240000, 0.640000<=pK<=0.680000;
0.200000<=pL<=0.240000, 0.680000<=pK<=0.720000;
0.200000<=pL<=0.240000, 0.720000<=pK<=0.760000;
0.200000<=pL<=0.240000, 0.760000<=pK<=0.800000;
0.200000<=pL<=0.240000, 0.800000<=pK<=0.840000;
0.200000<=pL<=0.240000, 0.840000<=pK<=0.880000;
0.200000<=pL<=0.240000, 0.880000<=pK<=0.920000;
0.200000<=pL<=0.240000, 0.920000<=pK<=0.960000;
0.200000<=pL<=0.240000, 0.960000<=pK<=0.999990;
0.240000<=pL<=0.280000, 0.000010<=pK<=0.040000;
0.240000<=pL<=0.280000, 0.040000<=pK<=0.080000;
0.240000<=pL<=0.280000, 0.080000<=pK<=0.120000;
0.240000<=pL<=0.280000, 0.120000<=pK<=0.160000;
0.240000<=pL<=0.280000, 0.160000<=pK<=0.200000;
0.240000<=pL<=0.280000, 0.200000<=pK<=0.240000;
0.240000<=pL<=0.280000, 0.240000<=pK<=0.280000;
0.240000<=pL<=0.280000, 0.280000<=pK<=0.320000;
0.240000<=pL<=0.280000, 0.320000<=pK<=0.360000;
0.240000<=pL<=0.280000, 0.360000<=pK<=0.400000;
0.240000<=pL<=0.280000, 0.400000<=pK<=0.440000;
0.240000<=pL<=0.280000, 0.440000<=pK<=0.480000;
0.240000<=pL<=0.280000, 0.480000<=pK<=0.520000;
0.240000<=pL<=0.280000, 0.520000<=pK<=0.560000;
0.240000<=pL<=0.280000, 0.560000<=pK<=0.600000;
0.240000<=pL<=0.280000, 0.600000<=pK<=0.640000;
0.240000<=pL<=0.280000, 0.640000<=pK<=0.680000;
0.240000<=pL<=0.280000, 0.680000<=pK<=0.720000;
0.240000<=pL<=0.280000, 0.720000<=pK<=0.760000;
0.240000<=pL<=0.280000, 0.760000<=pK<=0.800000;
0.240000<=pL<=0.280000, 0.800000<=pK<=0.840000;
0.240000<=pL<=0.280000, 0.840000<=pK<=0.880000;
0.240000<=pL<=0.280000, 0.880000<=pK<=0.920000;
0.240000<=pL<=0.280000, 0.920000<=pK<=0.960000;
0.240000<=pL<=0.280000, 0.960000<=pK<=0.999990;
0.280000<=pL<=0.320000, 0.000010<=pK<=0.040000;
0.280000<=pL<=0.320000, 0.040000<=pK<=0.080000;
0.280000<=pL<=0.320000, 0.080000<=pK<=0.120000;
0.280000<=pL<=0.320000, 0.120000<=pK<=0.160000;
0.280000<=pL<=0.320000, 0.160000<=pK<=0.200000;
0.280000<=pL<=0.320000, 0.200000<=pK<=0.240000;
0.280000<=pL<=0.320000, 0.240000<=pK<=0.280000;
0.280000<=pL<=0.320000, 0.280000<=pK<=0.320000;
0.280000<=pL<=0.320000, 0.320000<=pK<=0.360000;
0.280000<=pL<=0.320000, 0.360000<=pK<=0.400000;
0.280000<=pL<=0.320000, 0.400000<=pK<=0.440000;
0.280000<=pL<=0.320000, 0.440000<=pK<=0.480000;
0.280000<=pL<=0.320000, 0.480000<=pK<=0.520000;
0.280000<=pL<=0.320000, 0.520000<=pK<=0.560000;
0.280000<=pL<=0.320000, 0.560000<=pK<=0.600000;
0.280000<=pL<=0.320000, 0.600000<=pK<=0.640000;
0.280000<=pL<=0.320000, 0.640000<=pK<=0.680000;
0.280000<=pL<=0.320000, 0.680000<=pK<=0.720000;
0.280000<=pL<=0.320000, 0.720000<=pK<=0.760000;
0.280000<=pL<=0.320000, 0.760000<=pK<=0.800000;
0.280000<=pL<=0.320000, 0.800000<=pK<=0.840000;
0.280000<=pL<=0.320000, 0.840000<=pK<=0.880000;
0.280000<=pL<=0.320000, 0.880000<=pK<=0.920000;
0.280000<=pL<=0.320000, 0.920000<=pK<=0.960000;
0.280000<=pL<=0.320000, 0.960000<=pK<=0.999990;
0.320000<=pL<=0.360000, 0.000010<=pK<=0.040000;
0.320000<=pL<=0.360000, 0.040000<=pK<=0.080000;
0.320000<=pL<=0.360000, 0.080000<=pK<=0.120000;
0.320000<=pL<=0.360000, 0.120000<=pK<=0.160000;
0.320000<=pL<=0.360000, 0.160000<=pK<=0.200000;
0.320000<=pL<=0.360000, 0.200000<=pK<=0.240000;
0.320000<=pL<=0.360000, 0.240000<=pK<=0.280000;
0.320000<=pL<=0.360000, 0.280000<=pK<=0.320000;
0.320000<=pL<=0.360000, 0.320000<=pK<=0.360000;
0.320000<=pL<=0.360000, 0.360000<=pK<=0.400000;
0.320000<=pL<=0.360000, 0.400000<=pK<=0.440000;
0.320000<=pL<=0.360000, 0.440000<=pK<=0.480000;
0.320000<=pL<=0.360000, 0.480000<=pK<=0.520000;
0.320000<=pL<=0.360000, 0.520000<=pK<=0.560000;
0.320000<=pL<=0.360000, 0.560000<=pK<=0.600000;
0.320000<=pL<=0.360000, 0.600000<=pK<=0.640000;
0.320000<=pL<=0.360000, 0.640000<=pK<=0.680000;
0.320000<=pL<=0.360000, 0.680000<=pK<=0.720000;
0.320000<=pL<=0.360000, 0.720000<=pK<=0.760000;
0.320000<=pL<=0.360000, 0.760000<=pK<=0.800000;
0.320000<=pL<=0.360000, 0.800000<=pK<=0.840000;
0.320000<=pL<=0.360000, 0.840000<=pK<=0.880000;
0.320000<=pL<=0.360000, 0.880000<=pK<=0.920000;
0.320000<=pL<=0.360000, 0.920000<=pK<=0.960000;
0.320000<=pL<=0.360000, 0.960000<=pK<=0.999990;
0.360000<=pL<=0.400000, 0.000010<=pK<=0.040000;
0.360000<=pL<=0.400000, 0.040000<=pK<=0.080000;
0.360000<=pL<=0.400000, 0.080000<=pK<=0.120000;
0.360000<=pL<=0.400000, 0.120000<=pK<=0.160000;
0.360000<=pL<=0.400000, 0.160000<=pK<=0.200000;
0.360000<=pL<=0.400000, 0.200000<=pK<=0.240000;
0.360000<=pL<=0.400000, 0.240000<=pK<=0.280000;
0.360000<=pL<=0.400000, 0.280000<=pK<=0.320000;
0.360000<=pL<=0.400000, 0.320000<=pK<=0.360000;
0.360000<=pL<=0.400000, 0.360000<=pK<=0.400000;
0.360000<=pL<=0.400000, 0.400000<=pK<=0.440000;
0.360000<=pL<=0.400000, 0.440000<=pK<=0.480000;
0.360000<=pL<=0.400000, 0.480000<=pK<=0.520000;
0.360000<=pL<=0.400000, 0.520000<=pK<=0.560000;
0.360000<=pL<=0.400000, 0.560000<=pK<=0.600000;
0.360000<=pL<=0.400000, 0.600000<=pK<=0.640000;
0.360000<=pL<=0.400000, 0.640000<=pK<=0.680000;
0.360000<=pL<=0.400000, 0.680000<=pK<=0.720000;
0.360000<=pL<=0.400000, 0.720000<=pK<=0.760000;
0.360000<=pL<=0.400000, 0.760000<=pK<=0.800000;
0.360000<=pL<=0.400000, 0.800000<=pK<=0.840000;
0.360000<=pL<=0.400000, 0.840000<=pK<=0.880000;
0.360000<=pL<=0.400000, 0.880000<=pK<=0.920000;
0.360000<=pL<=0.400000, 0.920000<=pK<=0.960000;
0.360000<=pL<=0.400000, 0.960000<=pK<=0.999990;
0.400000<=pL<=0.440000, 0.000010<=pK<=0.040000;
0.400000<=pL<=0.440000, 0.040000<=pK<=0.080000;
0.400000<=pL<=0.440000, 0.080000<=pK<=0.120000;
0.400000<=pL<=0.440000, 0.120000<=pK<=0.160000;
0.400000<=pL<=0.440000, 0.160000<=pK<=0.200000;
0.400000<=pL<=0.440000, 0.200000<=pK<=0.240000;
0.400000<=pL<=0.440000, 0.240000<=pK<=0.280000;
0.400000<=pL<=0.440000, 0.280000<=pK<=0.320000;
0.400000<=pL<=0.440000, 0.320000<=pK<=0.360000;
0.400000<=pL<=0.440000, 0.360000<=pK<=0.400000;
0.400000<=pL<=0.440000, 0.400000<=pK<=0.440000;
0.400000<=pL<=0.440000, 0.440000<=pK<=0.480000;
0.400000<=pL<=0.440000, 0.480000<=pK<=0.520000;
0.400000<=pL<=0.440000, 0.520000<=pK<=0.560000;
0.400000<=pL<=0.440000, 0.560000<=pK<=0.600000;
0.400000<=pL<=0.440000, 0.600000<=pK<=0.640000;
0.400000<=pL<=0.440000, 0.640000<=pK<=0.680000;
0.400000<=pL<=0.440000, 0.680000<=pK<=0.720000;
0.400000<=pL<=0.440000, 0.720000<=pK<=0.760000;
0.400000<=pL<=0.440000, 0.760000<=pK<=0.800000;
0.400000<=pL<=0.440000, 0.800000<=pK<=0.840000;
0.400000<=pL<=0.440000, 0.840000<=pK<=0.880000;
0.400000<=pL<=0.440000, 0.880000<=pK<=0.920000;
0.400000<=pL<=0.440000, 0.920000<=pK<=0.960000;
0.400000<=pL<=0.440000, 0.960000<=pK<=0.999990;
0.440000<=pL<=0.480000, 0.000010<=pK<=0.040000;
0.440000<=pL<=0.480000, 0.040000<=pK<=0.080000;
0.440000<=pL<=0.480000, 0.080000<=pK<=0.120000;
0.440000<=pL<=0.480000, 0.120000<=pK<=0.160000;
0.440000<=pL<=0.480000, 0.160000<=pK<=0.200000;
0.440000<=pL<=0.480000, 0.200000<=pK<=0.240000;
0.440000<=pL<=0.480000, 0.240000<=pK<=0.280000;
0.440000<=pL<=0.480000, 0.280000<=pK<=0.320000;
0.440000<=pL<=0.480000, 0.320000<=pK<=0.360000;
0.440000<=pL<=0.480000, 0.360000<=pK<=0.400000;
0.440000<=pL<=0.480000, 0.400000<=pK<=0.440000;
0.440000<=pL<=0.480000, 0.440000<=pK<=0.480000;
0.440000<=pL<=0.480000, 0.480000<=pK<=0.520000;
0.440000<=pL<=0.480000, 0.520000<=pK<=0.560000;
0.440000<=pL<=0.480000, 0.560000<=pK<=0.600000;
0.440000<=pL<=0.480000, 0.600000<=pK<=0.640000;
0.440000<=pL<=0.480000, 0.640000<=pK<=0.680000;
0.440000<=pL<=0.480000, 0.680000<=pK<=0.720000;
0.440000<=pL<=0.480000, 0.720000<=pK<=0.760000;
0.440000<=pL<=0.480000, 0.760000<=pK<=0.800000;
0.440000<=pL<=0.480000, 0.800000<=pK<=0.840000;
0.440000<=pL<=0.480000, 0.840000<=pK<=0.880000;
0.440000<=pL<=0.480000, 0.880000<=pK<=0.920000;
0.440000<=pL<=0.480000, 0.920000<=pK<=0.960000;
0.440000<=pL<=0.480000, 0.960000<=pK<=0.999990;
0.480000<=pL<=0.520000, 0.000010<=pK<=0.040000;
0.480000<=pL<=0.520000, 0.040000<=pK<=0.080000;
0.480000<=pL<=0.520000, 0.080000<=pK<=0.120000;
0.480000<=pL<=0.520000, 0.120000<=pK<=0.160000;
0.480000<=pL<=0.520000, 0.160000<=pK<=0.200000;
0.480000<=pL<=0.520000, 0.200000<=pK<=0.240000;
0.480000<=pL<=0.520000, 0.240000<=pK<=0.280000;
0.480000<=pL<=0.520000, 0.280000<=pK<=0.320000;
0.480000<=pL<=0.520000, 0.320000<=pK<=0.360000;
0.480000<=pL<=0.520000, 0.360000<=pK<=0.400000;
0.480000<=pL<=0.520000, 0.400000<=pK<=0.440000;
0.480000<=pL<=0.520000, 0.440000<=pK<=0.480000;
0.480000<=pL<=0.520000, 0.480000<=pK<=0.520000;
0.480000<=pL<=0.520000, 0.520000<=pK<=0.560000;
0.480000<=pL<=0.520000, 0.560000<=pK<=0.600000;
0.480000<=pL<=0.520000, 0.600000<=pK<=0.640000;
0.480000<=pL<=0.520000, 0.640000<=pK<=0.680000;
0.480000<=pL<=0.520000, 0.680000<=pK<=0.720000;
0.480000<=pL<=0.520000, 0.720000<=pK<=0.760000;
0.480000<=pL<=0.520000, 0.760000<=pK<=0.800000;
0.480000<=pL<=0.520000, 0.800000<=pK<=0.840000;
0.480000<=pL<=0.520000, 0.840000<=pK<=0.880000;
0.480000<=pL<=0.520000, 0.880000<=pK<=0.920000;
0.480000<=pL<=0.520000, 0.920000<=pK<=0.960000;
0.480000<=pL<=0.520000, 0.960000<=pK<=0.999990;
0.520000<=pL<=0.560000, 0.000010<=pK<=0.040000;
0.520000<=pL<=0.560000, 0.040000<=pK<=0.080000;
0.520000<=pL<=0.560000, 0.080000<=pK<=0.120000;
0.520000<=pL<=0.560000, 0.120000<=pK<=0.160000;
0.520000<=pL<=0.560000, 0.160000<=pK<=0.200000;
0.520000<=pL<=0.560000, 0.200000<=pK<=0.240000;
0.520000<=pL<=0.560000, 0.240000<=pK<=0.280000;
0.520000<=pL<=0.560000, 0.280000<=pK<=0.320000;
0.520000<=pL<=0.560000, 0.320000<=pK<=0.360000;
0.520000<=pL<=0.560000, 0.360000<=pK<=0.400000;
0.520000<=pL<=0.560000, 0.400000<=pK<=0.440000;
0.520000<=pL<=0.560000, 0.440000<=pK<=0.480000;
0.520000<=pL<=0.560000, 0.480000<=pK<=0.520000;
0.520000<=pL<=0.560000, 0.520000<=pK<=0.560000;
0.520000<=pL<=0.560000, 0.560000<=pK<=0.600000;
0.520000<=pL<=0.560000, 0.600000<=pK<=0.640000;
0.520000<=pL<=0.560000, 0.640000<=pK<=0.680000;
0.520000<=pL<=0.560000, 0.680000<=pK<=0.720000;
0.520000<=pL<=0.560000, 0.720000<=pK<=0.760000;
0.520000<=pL<=0.560000, 0.760000<=pK<=0.800000;
0.520000<=pL<=0.560000, 0.800000<=pK<=0.840000;
0.520000<=pL<=0.560000, 0.840000<=pK<=0.880000;
0.520000<=pL<=0.560000, 0.880000<=pK<=0.920000;
0.520000<=pL<=0.560000, 0.920000<=pK<=0.960000;
0.520000<=pL<=0.560000, 0.960000<=pK<=0.999990;
0.560000<=pL<=0.600000, 0.000010<=pK<=0.040000;
0.560000<=pL<=0.600000, 0.040000<=pK<=0.080000;
0.560000<=pL<=0.600000, 0.080000<=pK<=0.120000;
0.560000<=pL<=0.600000, 0.120000<=pK<=0.160000;
0.560000<=pL<=0.600000, 0.160000<=pK<=0.200000;
0.560000<=pL<=0.600000, 0.200000<=pK<=0.240000;
0.560000<=pL<=0.600000, 0.240000<=pK<=0.280000;
0.560000<=pL<=0.600000, 0.280000<=pK<=0.320000;
0.560000<=pL<=0.600000, 0.320000<=pK<=0.360000;
0.560000<=pL<=0.600000, 0.360000<=pK<=0.400000;
0.560000<=pL<=0.600000, 0.400000<=pK<=0.440000;
0.560000<=pL<=0.600000, 0.440000<=pK<=0.480000;
0.560000<=pL<=0.600000, 0.480000<=pK<=0.520000;
0.560000<=pL<=0.600000, 0.520000<=pK<=0.560000;
0.560000<=pL<=0.600000, 0.560000<=pK<=0.600000;
0.560000<=pL<=0.600000, 0.600000<=pK<=0.640000;
0.560000<=pL<=0.600000, 0.640000<=pK<=0.680000;
0.560000<=pL<=0.600000, 0.680000<=pK<=0.720000;
0.560000<=pL<=0.600000, 0.720000<=pK<=0.760000;
0.560000<=pL<=0.600000, 0.760000<=pK<=0.800000;
0.560000<=pL<=0.600000, 0.800000<=pK<=0.840000;
0.560000<=pL<=0.600000, 0.840000<=pK<=0.880000;
0.560000<=pL<=0.600000, 0.880000<=pK<=0.920000;
0.560000<=pL<=0.600000, 0.920000<=pK<=0.960000;
0.560000<=pL<=0.600000, 0.960000<=pK<=0.999990;
0.600000<=pL<=0.640000, 0.000010<=pK<=0.040000;
0.600000<=pL<=0.640000, 0.040000<=pK<=0.080000;
0.600000<=pL<=0.640000, 0.080000<=pK<=0.120000;
0.600000<=pL<=0.640000, 0.120000<=pK<=0.160000;
0.600000<=pL<=0.640000, 0.160000<=pK<=0.200000;
0.600000<=pL<=0.640000, 0.200000<=pK<=0.240000;
0.600000<=pL<=0.640000, 0.240000<=pK<=0.280000;
0.600000<=pL<=0.640000, 0.280000<=pK<=0.320000;
0.600000<=pL<=0.640000, 0.320000<=pK<=0.360000;
0.600000<=pL<=0.640000, 0.360000<=pK<=0.400000;
0.600000<=pL<=0.640000, 0.400000<=pK<=0.440000;
0.600000<=pL<=0.640000, 0.440000<=pK<=0.480000;
0.600000<=pL<=0.640000, 0.480000<=pK<=0.520000;
0.600000<=pL<=0.640000, 0.520000<=pK<=0.560000;
0.600000<=pL<=0.640000, 0.560000<=pK<=0.600000;
0.600000<=pL<=0.640000, 0.600000<=pK<=0.640000;
0.600000<=pL<=0.640000, 0.640000<=pK<=0.680000;
0.600000<=pL<=0.640000, 0.680000<=pK<=0.720000;
0.600000<=pL<=0.640000, 0.720000<=pK<=0.760000;
0.600000<=pL<=0.640000, 0.760000<=pK<=0.800000;
0.600000<=pL<=0.640000, 0.800000<=pK<=0.840000;
0.600000<=pL<=0.640000, 0.840000<=pK<=0.880000;
0.600000<=pL<=0.640000, 0.880000<=pK<=0.920000;
0.600000<=pL<=0.640000, 0.920000<=pK<=0.960000;
0.600000<=pL<=0.640000, 0.960000<=pK<=0.999990;
0.640000<=pL<=0.680000, 0.000010<=pK<=0.040000;
0.640000<=pL<=0.680000, 0.040000<=pK<=0.080000;
0.640000<=pL<=0.680000, 0.080000<=pK<=0.120000;
0.640000<=pL<=0.680000, 0.120000<=pK<=0.160000;
0.640000<=pL<=0.680000, 0.160000<=pK<=0.200000;
0.640000<=pL<=0.680000, 0.200000<=pK<=0.240000;
0.640000<=pL<=0.680000, 0.240000<=pK<=0.280000;
0.640000<=pL<=0.680000, 0.280000<=pK<=0.320000;
0.640000<=pL<=0.680000, 0.320000<=pK<=0.360000;
0.640000<=pL<=0.680000, 0.360000<=pK<=0.400000;
0.640000<=pL<=0.680000, 0.400000<=pK<=0.440000;
0.640000<=pL<=0.680000, 0.440000<=pK<=0.480000;
0.640000<=pL<=0.680000, 0.480000<=pK<=0.520000;
0.640000<=pL<=0.680000, 0.520000<=pK<=0.560000;
0.640000<=pL<=0.680000, 0.560000<=pK<=0.600000;
0.640000<=pL<=0.680000, 0.600000<=pK<=0.640000;
0.640000<=pL<=0.680000, 0.640000<=pK<=0.680000;
0.640000<=pL<=0.680000, 0.680000<=pK<=0.720000;
0.640000<=pL<=0.680000, 0.720000<=pK<=0.760000;
0.640000<=pL<=0.680000, 0.760000<=pK<=0.800000;
0.640000<=pL<=0.680000, 0.800000<=pK<=0.840000;
0.640000<=pL<=0.680000, 0.840000<=pK<=0.880000;
0.640000<=pL<=0.680000, 0.880000<=pK<=0.920000;
0.640000<=pL<=0.680000, 0.920000<=pK<=0.960000;
0.640000<=pL<=0.680000, 0.960000<=pK<=0.999990;
0.680000<=pL<=0.720000, 0.000010<=pK<=0.040000;
0.680000<=pL<=0.720000, 0.040000<=pK<=0.080000;
0.680000<=pL<=0.720000, 0.080000<=pK<=0.120000;
0.680000<=pL<=0.720000, 0.120000<=pK<=0.160000;
0.680000<=pL<=0.720000, 0.160000<=pK<=0.200000;
0.680000<=pL<=0.720000, 0.200000<=pK<=0.240000;
0.680000<=pL<=0.720000, 0.240000<=pK<=0.280000;
0.680000<=pL<=0.720000, 0.280000<=pK<=0.320000;
0.680000<=pL<=0.720000, 0.320000<=pK<=0.360000;
0.680000<=pL<=0.720000, 0.360000<=pK<=0.400000;
0.680000<=pL<=0.720000, 0.400000<=pK<=0.440000;
0.680000<=pL<=0.720000, 0.440000<=pK<=0.480000;
0.680000<=pL<=0.720000, 0.480000<=pK<=0.520000;
0.680000<=pL<=0.720000, 0.520000<=pK<=0.560000;
0.680000<=pL<=0.720000, 0.560000<=pK<=0.600000;
0.680000<=pL<=0.720000, 0.600000<=pK<=0.640000;
0.680000<=pL<=0.720000, 0.640000<=pK<=0.680000;
0.680000<=pL<=0.720000, 0.680000<=pK<=0.720000;
0.680000<=pL<=0.720000, 0.720000<=pK<=0.760000;
0.680000<=pL<=0.720000, 0.760000<=pK<=0.800000;
0.680000<=pL<=0.720000, 0.800000<=pK<=0.840000;
0.680000<=pL<=0.720000, 0.840000<=pK<=0.880000;
0.680000<=pL<=0.720000, 0.880000<=pK<=0.920000;
0.680000<=pL<=0.720000, 0.920000<=pK<=0.960000;
0.680000<=pL<=0.720000, 0.960000<=pK<=0.999990;
0.720000<=pL<=0.760000, 0.000010<=pK<=0.040000;
0.720000<=pL<=0.760000, 0.040000<=pK<=0.080000;
0.720000<=pL<=0.760000, 0.080000<=pK<=0.120000;
0.720000<=pL<=0.760000, 0.120000<=pK<=0.160000;
0.720000<=pL<=0.760000, 0.160000<=pK<=0.200000;
0.720000<=pL<=0.760000, 0.200000<=pK<=0.240000;
0.720000<=pL<=0.760000, 0.240000<=pK<=0.280000;
0.720000<=pL<=0.760000, 0.280000<=pK<=0.320000;
0.720000<=pL<=0.760000, 0.320000<=pK<=0.360000;
0.720000<=pL<=0.760000, 0.360000<=pK<=0.400000;
0.720000<=pL<=0.760000, 0.400000<=pK<=0.440000;
0.720000<=pL<=0.760000, 0.440000<=pK<=0.480000;
0.720000<=pL<=0.760000, 0.480000<=pK<=0.520000;
0.720000<=pL<=0.760000, 0.520000<=pK<=0.560000;
0.720000<=pL<=0.760000, 0.560000<=pK<=0.600000;
0.720000<=pL<=0.760000, 0.600000<=pK<=0.640000;
0.720000<=pL<=0.760000, 0.640000<=pK<=0.680000;
0.720000<=pL<=0.760000, 0.680000<=pK<=0.720000;
0.720000<=pL<=0.760000, 0.720000<=pK<=0.760000;
0.720000<=pL<=0.760000, 0.760000<=pK<=0.800000;
0.720000<=pL<=0.760000, 0.800000<=pK<=0.840000;
0.720000<=pL<=0.760000, 0.840000<=pK<=0.880000;
0.720000<=pL<=0.760000, 0.880000<=pK<=0.920000;
0.720000<=pL<=0.760000, 0.920000<=pK<=0.960000;
0.720000<=pL<=0.760000, 0.960000<=pK<=0.999990;
0.760000<=pL<=0.800000, 0.000010<=pK<=0.040000;
0.760000<=pL<=0.800000, 0.040000<=pK<=0.080000;
0.760000<=pL<=0.800000, 0.080000<=pK<=0.120000;
0.760000<=pL<=0.800000, 0.120000<=pK<=0.160000;
0.760000<=pL<=0.800000, 0.160000<=pK<=0.200000;
0.760000<=pL<=0.800000, 0.200000<=pK<=0.240000;
0.760000<=pL<=0.800000, 0.240000<=pK<=0.280000;
0.760000<=pL<=0.800000, 0.280000<=pK<=0.320000;
0.760000<=pL<=0.800000, 0.320000<=pK<=0.360000;
0.760000<=pL<=0.800000, 0.360000<=pK<=0.400000;
0.760000<=pL<=0.800000, 0.400000<=pK<=0.440000;
0.760000<=pL<=0.800000, 0.440000<=pK<=0.480000;
0.760000<=pL<=0.800000, 0.480000<=pK<=0.520000;
0.760000<=pL<=0.800000, 0.520000<=pK<=0.560000;
0.760000<=pL<=0.800000, 0.560000<=pK<=0.600000;
0.760000<=pL<=0.800000, 0.600000<=pK<=0.640000;
0.760000<=pL<=0.800000, 0.640000<=pK<=0.680000;
0.760000<=pL<=0.800000, 0.680000<=pK<=0.720000;
0.760000<=pL<=0.800000, 0.720000<=pK<=0.760000;
0.760000<=pL<=0.800000, 0.760000<=pK<=0.800000;
0.760000<=pL<=0.800000, 0.800000<=pK<=0.840000;
0.760000<=pL<=0.800000, 0.840000<=pK<=0.880000;
0.760000<=pL<=0.800000, 0.880000<=pK<=0.920000;
0.760000<=pL<=0.800000, 0.920000<=pK<=0.960000;
0.760000<=pL<=0.800000, 0.960000<=pK<=0.999990;
0.800000<=pL<=0.840000, 0.000010<=pK<=0.040000;
0.800000<=pL<=0.840000, 0.040000<=pK<=0.080000;
0.800000<=pL<=0.840000, 0.080000<=pK<=0.120000;
0.800000<=pL<=0.840000, 0.120000<=pK<=0.160000;
0.800000<=pL<=0.840000, 0.160000<=pK<=0.200000;
0.800000<=pL<=0.840000, 0.200000<=pK<=0.240000;
0.800000<=pL<=0.840000, 0.240000<=pK<=0.280000;
0.800000<=pL<=0.840000, 0.280000<=pK<=0.320000;
0.800000<=pL<=0.840000, 0.320000<=pK<=0.360000;
0.800000<=pL<=0.840000, 0.360000<=pK<=0.400000;
0.800000<=pL<=0.840000, 0.400000<=pK<=0.440000;
0.800000<=pL<=0.840000, 0.440000<=pK<=0.480000;
0.800000<=pL<=0.840000, 0.480000<=pK<=0.520000;
0.800000<=pL<=0.840000, 0.520000<=pK<=0.560000;
0.800000<=pL<=0.840000, 0.560000<=pK<=0.600000;
0.800000<=pL<=0.840000, 0.600000<=pK<=0.640000;
0.800000<=pL<=0.840000, 0.640000<=pK<=0.680000;
0.800000<=pL<=0.840000, 0.680000<=pK<=0.720000;
0.800000<=pL<=0.840000, 0.720000<=pK<=0.760000;
0.800000<=pL<=0.840000, 0.760000<=pK<=0.800000;
0.800000<=pL<=0.840000, 0.800000<=pK<=0.840000;
0.800000<=pL<=0.840000, 0.840000<=pK<=0.880000;
0.800000<=pL<=0.840000, 0.880000<=pK<=0.920000;
0.800000<=pL<=0.840000, 0.920000<=pK<=0.960000;
0.800000<=pL<=0.840000, 0.960000<=pK<=0.999990;
0.840000<=pL<=0.880000, 0.000010<=pK<=0.040000;
0.840000<=pL<=0.880000, 0.040000<=pK<=0.080000;
0.840000<=pL<=0.880000, 0.080000<=pK<=0.120000;
0.840000<=pL<=0.880000, 0.120000<=pK<=0.160000;
0.840000<=pL<=0.880000, 0.160000<=pK<=0.200000;
0.840000<=pL<=0.880000, 0.200000<=pK<=0.240000;
0.840000<=pL<=0.880000, 0.240000<=pK<=0.280000;
0.840000<=pL<=0.880000, 0.280000<=pK<=0.320000;
0.840000<=pL<=0.880000, 0.320000<=pK<=0.360000;
0.840000<=pL<=0.880000, 0.360000<=pK<=0.400000;
0.840000<=pL<=0.880000, 0.400000<=pK<=0.440000;
0.840000<=pL<=0.880000, 0.440000<=pK<=0.480000;
0.840000<=pL<=0.880000, 0.480000<=pK<=0.520000;
0.840000<=pL<=0.880000, 0.520000<=pK<=0.560000;
0.840000<=pL<=0.880000, 0.560000<=pK<=0.600000;
0.840000<=pL<=0.880000, 0.600000<=pK<=0.640000;
0.840000<=pL<=0.880000, 0.640000<=pK<=0.680000;
0.840000<=pL<=0.880000, 0.680000<=pK<=0.720000;
0.840000<=pL<=0.880000, 0.720000<=pK<=0.760000;
0.840000<=pL<=0.880000, 0.760000<=pK<=0.800000;
0.840000<=pL<=0.880000, 0.800000<=pK<=0.840000;
0.840000<=pL<=0.880000, 0.840000<=pK<=0.880000;
0.840000<=pL<=0.880000, 0.880000<=pK<=0.920000;
0.840000<=pL<=0.880000, 0.920000<=pK<=0.960000;
0.840000<=pL<=0.880000, 0.960000<=pK<=0.999990;
0.880000<=pL<=0.920000, 0.000010<=pK<=0.040000;
0.880000<=pL<=0.920000, 0.040000<=pK<=0.080000;
0.880000<=pL<=0.920000, 0.080000<=pK<=0.120000;
0.880000<=pL<=0.920000, 0.120000<=pK<=0.160000;
0.880000<=pL<=0.920000, 0.160000<=pK<=0.200000;
0.880000<=pL<=0.920000, 0.200000<=pK<=0.240000;
0.880000<=pL<=0.920000, 0.240000<=pK<=0.280000;
0.880000<=pL<=0.920000, 0.280000<=pK<=0.320000;
0.880000<=pL<=0.920000, 0.320000<=pK<=0.360000;
0.880000<=pL<=0.920000, 0.360000<=pK<=0.400000;
0.880000<=pL<=0.920000, 0.400000<=pK<=0.440000;
0.880000<=pL<=0.920000, 0.440000<=pK<=0.480000;
0.880000<=pL<=0.920000, 0.480000<=pK<=0.520000;
0.880000<=pL<=0.920000, 0.520000<=pK<=0.560000;
0.880000<=pL<=0.920000, 0.560000<=pK<=0.600000;
0.880000<=pL<=0.920000, 0.600000<=pK<=0.640000;
0.880000<=pL<=0.920000, 0.640000<=pK<=0.680000;
0.880000<=pL<=0.920000, 0.680000<=pK<=0.720000;
0.880000<=pL<=0.920000, 0.720000<=pK<=0.760000;
0.880000<=pL<=0.920000, 0.760000<=pK<=0.800000;
0.880000<=pL<=0.920000, 0.800000<=pK<=0.840000;
0.880000<=pL<=0.920000, 0.840000<=pK<=0.880000;
0.880000<=pL<=0.920000, 0.880000<=pK<=0.920000;
0.880000<=pL<=0.920000, 0.920000<=pK<=0.960000;
0.880000<=pL<=0.920000, 0.960000<=pK<=0.999990;
0.920000<=pL<=0.960000, 0.000010<=pK<=0.040000;
0.920000<=pL<=0.960000, 0.040000<=pK<=0.080000;
0.920000<=pL<=0.960000, 0.080000<=pK<=0.120000;
0.920000<=pL<=0.960000, 0.120000<=pK<=0.160000;
0.920000<=pL<=0.960000, 0.160000<=pK<=0.200000;
0.920000<=pL<=0.960000, 0.200000<=pK<=0.240000;
0.920000<=pL<=0.960000, 0.240000<=pK<=0.280000;
0.920000<=pL<=0.960000, 0.280000<=pK<=0.320000;
0.920000<=pL<=0.960000, 0.320000<=pK<=0.360000;
0.920000<=pL<=0.960000, 0.360000<=pK<=0.400000;
0.920000<=pL<=0.960000, 0.400000<=pK<=0.440000;
0.920000<=pL<=0.960000, 0.440000<=pK<=0.480000;
0.920000<=pL<=0.960000, 0.480000<=pK<=0.520000;
0.920000<=pL<=0.960000, 0.520000<=pK<=0.560000;
0.920000<=pL<=0.960000, 0.560000<=pK<=0.600000;
0.920000<=pL<=0.960000, 0.600000<=pK<=0.640000;
0.920000<=pL<=0.960000, 0.640000<=pK<=0.680000;
0.920000<=pL<=0.960000, 0.680000<=pK<=0.720000;
0.920000<=pL<=0.960000, 0.720000<=pK<=0.760000;
0.920000<=pL<=0.960000, 0.760000<=pK<=0.800000;
0.920000<=pL<=0.960000, 0.800000<=pK<=0.840000;
0.920000<=pL<=0.960000, 0.840000<=pK<=0.880000;
0.920000<=pL<=0.960000, 0.880000<=pK<=0.920000;
0.920000<=pL<=0.960000, 0.920000<=pK<=0.960000;
0.920000<=pL<=0.960000, 0.960000<=pK<=0.999990;
0.960000<=pL<=0.999990, 0.000010<=pK<=0.040000;
0.960000<=pL<=0.999990, 0.040000<=pK<=0.080000;
0.960000<=pL<=0.999990, 0.080000<=pK<=0.120000;
0.960000<=pL<=0.999990, 0.120000<=pK<=0.160000;
0.960000<=pL<=0.999990, 0.160000<=pK<=0.200000;
0.960000<=pL<=0.999990, 0.200000<=pK<=0.240000;
0.960000<=pL<=0.999990, 0.240000<=pK<=0.280000;
0.960000<=pL<=0.999990, 0.280000<=pK<=0.320000;
0.960000<=pL<=0.999990, 0.320000<=pK<=0.360000;
0.960000<=pL<=0.999990, 0.360000<=pK<=0.400000;
0.960000<=pL<=0.999990, 0.400000<=pK<=0.440000;
0.960000<=pL<=0.999990, 0.440000<=pK<=0.480000;
0.960000<=pL<=0.999990, 0.480000<=pK<=0.520000;
0.960000<=pL<=0.999990, 0.520000<=pK<=0.560000;
0.960000<=pL<=0.999990, 0.560000<=pK<=0.600000;
0.960000<=pL<=0.999990, 0.600000<=pK<=0.640000;
0.960000<=pL<=0.999990, 0.640000<=pK<=0.680000;
0.960000<=pL<=0.999990, 0.680000<=pK<=0.720000;
0.960000<=pL<=0.999990, 0.720000<=pK<=0.760000;
0.960000<=pL<=0.999990, 0.760000<=pK<=0.800000;
0.960000<=pL<=0.999990, 0.800000<=pK<=0.840000;
0.960000<=pL<=0.999990, 0.840000<=pK<=0.880000;
0.960000<=pL<=0.999990, 0.880000<=pK<=0.920000;
0.960000<=pL<=0.999990, 0.920000<=pK<=0.960000;
0.960000<=pL<=0.999990, 0.960000<=pK<=0.999990;

2
examples/pdtmc/brp/brp_space.txt

@ -0,0 +1,2 @@
0.000010<=pL<=0.999990, 0.000010<=pK<=0.999990;

2
examples/pdtmc/brp/models

@ -0,0 +1,2 @@
brp.pm -const N=256,MAX=5
brp.pm -const N=4096,MAX=5

146
examples/pdtmc/brp_rewards2/brp_rewards16_2.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 16;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg=0.4;
const double TOAck=0.6;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

146
examples/pdtmc/brp_rewards2/brp_rewards2.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N;
// maximum number of retransmissions
const int MAX;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg=0.4;
const double TOAck=0.6;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

2
examples/pdtmc/brp_rewards2/brp_rewards2.prctl

@ -0,0 +1,2 @@
R<3 [ F ((s=5) | (s=0&srep=3)) ]

147
examples/pdtmc/brp_rewards2/brp_rewards256_5.pm

@ -0,0 +1,147 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg=0.4;
const double TOAck=0.6;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

625
examples/pdtmc/brp_rewards2/brp_rewards2_regions.txt

@ -0,0 +1,625 @@
0.000010<=pL<=0.040000, 0.000010<=pK<=0.040000;
0.000010<=pL<=0.040000, 0.040000<=pK<=0.080000;
0.000010<=pL<=0.040000, 0.080000<=pK<=0.120000;
0.000010<=pL<=0.040000, 0.120000<=pK<=0.160000;
0.000010<=pL<=0.040000, 0.160000<=pK<=0.200000;
0.000010<=pL<=0.040000, 0.200000<=pK<=0.240000;
0.000010<=pL<=0.040000, 0.240000<=pK<=0.280000;
0.000010<=pL<=0.040000, 0.280000<=pK<=0.320000;
0.000010<=pL<=0.040000, 0.320000<=pK<=0.360000;
0.000010<=pL<=0.040000, 0.360000<=pK<=0.400000;
0.000010<=pL<=0.040000, 0.400000<=pK<=0.440000;
0.000010<=pL<=0.040000, 0.440000<=pK<=0.480000;
0.000010<=pL<=0.040000, 0.480000<=pK<=0.520000;
0.000010<=pL<=0.040000, 0.520000<=pK<=0.560000;
0.000010<=pL<=0.040000, 0.560000<=pK<=0.600000;
0.000010<=pL<=0.040000, 0.600000<=pK<=0.640000;
0.000010<=pL<=0.040000, 0.640000<=pK<=0.680000;
0.000010<=pL<=0.040000, 0.680000<=pK<=0.720000;
0.000010<=pL<=0.040000, 0.720000<=pK<=0.760000;
0.000010<=pL<=0.040000, 0.760000<=pK<=0.800000;
0.000010<=pL<=0.040000, 0.800000<=pK<=0.840000;
0.000010<=pL<=0.040000, 0.840000<=pK<=0.880000;
0.000010<=pL<=0.040000, 0.880000<=pK<=0.920000;
0.000010<=pL<=0.040000, 0.920000<=pK<=0.960000;
0.000010<=pL<=0.040000, 0.960000<=pK<=0.999990;
0.040000<=pL<=0.080000, 0.000010<=pK<=0.040000;
0.040000<=pL<=0.080000, 0.040000<=pK<=0.080000;
0.040000<=pL<=0.080000, 0.080000<=pK<=0.120000;
0.040000<=pL<=0.080000, 0.120000<=pK<=0.160000;
0.040000<=pL<=0.080000, 0.160000<=pK<=0.200000;
0.040000<=pL<=0.080000, 0.200000<=pK<=0.240000;
0.040000<=pL<=0.080000, 0.240000<=pK<=0.280000;
0.040000<=pL<=0.080000, 0.280000<=pK<=0.320000;
0.040000<=pL<=0.080000, 0.320000<=pK<=0.360000;
0.040000<=pL<=0.080000, 0.360000<=pK<=0.400000;
0.040000<=pL<=0.080000, 0.400000<=pK<=0.440000;
0.040000<=pL<=0.080000, 0.440000<=pK<=0.480000;
0.040000<=pL<=0.080000, 0.480000<=pK<=0.520000;
0.040000<=pL<=0.080000, 0.520000<=pK<=0.560000;
0.040000<=pL<=0.080000, 0.560000<=pK<=0.600000;
0.040000<=pL<=0.080000, 0.600000<=pK<=0.640000;
0.040000<=pL<=0.080000, 0.640000<=pK<=0.680000;
0.040000<=pL<=0.080000, 0.680000<=pK<=0.720000;
0.040000<=pL<=0.080000, 0.720000<=pK<=0.760000;
0.040000<=pL<=0.080000, 0.760000<=pK<=0.800000;
0.040000<=pL<=0.080000, 0.800000<=pK<=0.840000;
0.040000<=pL<=0.080000, 0.840000<=pK<=0.880000;
0.040000<=pL<=0.080000, 0.880000<=pK<=0.920000;
0.040000<=pL<=0.080000, 0.920000<=pK<=0.960000;
0.040000<=pL<=0.080000, 0.960000<=pK<=0.999990;
0.080000<=pL<=0.120000, 0.000010<=pK<=0.040000;
0.080000<=pL<=0.120000, 0.040000<=pK<=0.080000;
0.080000<=pL<=0.120000, 0.080000<=pK<=0.120000;
0.080000<=pL<=0.120000, 0.120000<=pK<=0.160000;
0.080000<=pL<=0.120000, 0.160000<=pK<=0.200000;
0.080000<=pL<=0.120000, 0.200000<=pK<=0.240000;
0.080000<=pL<=0.120000, 0.240000<=pK<=0.280000;
0.080000<=pL<=0.120000, 0.280000<=pK<=0.320000;
0.080000<=pL<=0.120000, 0.320000<=pK<=0.360000;
0.080000<=pL<=0.120000, 0.360000<=pK<=0.400000;
0.080000<=pL<=0.120000, 0.400000<=pK<=0.440000;
0.080000<=pL<=0.120000, 0.440000<=pK<=0.480000;
0.080000<=pL<=0.120000, 0.480000<=pK<=0.520000;
0.080000<=pL<=0.120000, 0.520000<=pK<=0.560000;
0.080000<=pL<=0.120000, 0.560000<=pK<=0.600000;
0.080000<=pL<=0.120000, 0.600000<=pK<=0.640000;
0.080000<=pL<=0.120000, 0.640000<=pK<=0.680000;
0.080000<=pL<=0.120000, 0.680000<=pK<=0.720000;
0.080000<=pL<=0.120000, 0.720000<=pK<=0.760000;
0.080000<=pL<=0.120000, 0.760000<=pK<=0.800000;
0.080000<=pL<=0.120000, 0.800000<=pK<=0.840000;
0.080000<=pL<=0.120000, 0.840000<=pK<=0.880000;
0.080000<=pL<=0.120000, 0.880000<=pK<=0.920000;
0.080000<=pL<=0.120000, 0.920000<=pK<=0.960000;
0.080000<=pL<=0.120000, 0.960000<=pK<=0.999990;
0.120000<=pL<=0.160000, 0.000010<=pK<=0.040000;
0.120000<=pL<=0.160000, 0.040000<=pK<=0.080000;
0.120000<=pL<=0.160000, 0.080000<=pK<=0.120000;
0.120000<=pL<=0.160000, 0.120000<=pK<=0.160000;
0.120000<=pL<=0.160000, 0.160000<=pK<=0.200000;
0.120000<=pL<=0.160000, 0.200000<=pK<=0.240000;
0.120000<=pL<=0.160000, 0.240000<=pK<=0.280000;
0.120000<=pL<=0.160000, 0.280000<=pK<=0.320000;
0.120000<=pL<=0.160000, 0.320000<=pK<=0.360000;
0.120000<=pL<=0.160000, 0.360000<=pK<=0.400000;
0.120000<=pL<=0.160000, 0.400000<=pK<=0.440000;
0.120000<=pL<=0.160000, 0.440000<=pK<=0.480000;
0.120000<=pL<=0.160000, 0.480000<=pK<=0.520000;
0.120000<=pL<=0.160000, 0.520000<=pK<=0.560000;
0.120000<=pL<=0.160000, 0.560000<=pK<=0.600000;
0.120000<=pL<=0.160000, 0.600000<=pK<=0.640000;
0.120000<=pL<=0.160000, 0.640000<=pK<=0.680000;
0.120000<=pL<=0.160000, 0.680000<=pK<=0.720000;
0.120000<=pL<=0.160000, 0.720000<=pK<=0.760000;
0.120000<=pL<=0.160000, 0.760000<=pK<=0.800000;
0.120000<=pL<=0.160000, 0.800000<=pK<=0.840000;
0.120000<=pL<=0.160000, 0.840000<=pK<=0.880000;
0.120000<=pL<=0.160000, 0.880000<=pK<=0.920000;
0.120000<=pL<=0.160000, 0.920000<=pK<=0.960000;
0.120000<=pL<=0.160000, 0.960000<=pK<=0.999990;
0.160000<=pL<=0.200000, 0.000010<=pK<=0.040000;
0.160000<=pL<=0.200000, 0.040000<=pK<=0.080000;
0.160000<=pL<=0.200000, 0.080000<=pK<=0.120000;
0.160000<=pL<=0.200000, 0.120000<=pK<=0.160000;
0.160000<=pL<=0.200000, 0.160000<=pK<=0.200000;
0.160000<=pL<=0.200000, 0.200000<=pK<=0.240000;
0.160000<=pL<=0.200000, 0.240000<=pK<=0.280000;
0.160000<=pL<=0.200000, 0.280000<=pK<=0.320000;
0.160000<=pL<=0.200000, 0.320000<=pK<=0.360000;
0.160000<=pL<=0.200000, 0.360000<=pK<=0.400000;
0.160000<=pL<=0.200000, 0.400000<=pK<=0.440000;
0.160000<=pL<=0.200000, 0.440000<=pK<=0.480000;
0.160000<=pL<=0.200000, 0.480000<=pK<=0.520000;
0.160000<=pL<=0.200000, 0.520000<=pK<=0.560000;
0.160000<=pL<=0.200000, 0.560000<=pK<=0.600000;
0.160000<=pL<=0.200000, 0.600000<=pK<=0.640000;
0.160000<=pL<=0.200000, 0.640000<=pK<=0.680000;
0.160000<=pL<=0.200000, 0.680000<=pK<=0.720000;
0.160000<=pL<=0.200000, 0.720000<=pK<=0.760000;
0.160000<=pL<=0.200000, 0.760000<=pK<=0.800000;
0.160000<=pL<=0.200000, 0.800000<=pK<=0.840000;
0.160000<=pL<=0.200000, 0.840000<=pK<=0.880000;
0.160000<=pL<=0.200000, 0.880000<=pK<=0.920000;
0.160000<=pL<=0.200000, 0.920000<=pK<=0.960000;
0.160000<=pL<=0.200000, 0.960000<=pK<=0.999990;
0.200000<=pL<=0.240000, 0.000010<=pK<=0.040000;
0.200000<=pL<=0.240000, 0.040000<=pK<=0.080000;
0.200000<=pL<=0.240000, 0.080000<=pK<=0.120000;
0.200000<=pL<=0.240000, 0.120000<=pK<=0.160000;
0.200000<=pL<=0.240000, 0.160000<=pK<=0.200000;
0.200000<=pL<=0.240000, 0.200000<=pK<=0.240000;
0.200000<=pL<=0.240000, 0.240000<=pK<=0.280000;
0.200000<=pL<=0.240000, 0.280000<=pK<=0.320000;
0.200000<=pL<=0.240000, 0.320000<=pK<=0.360000;
0.200000<=pL<=0.240000, 0.360000<=pK<=0.400000;
0.200000<=pL<=0.240000, 0.400000<=pK<=0.440000;
0.200000<=pL<=0.240000, 0.440000<=pK<=0.480000;
0.200000<=pL<=0.240000, 0.480000<=pK<=0.520000;
0.200000<=pL<=0.240000, 0.520000<=pK<=0.560000;
0.200000<=pL<=0.240000, 0.560000<=pK<=0.600000;
0.200000<=pL<=0.240000, 0.600000<=pK<=0.640000;
0.200000<=pL<=0.240000, 0.640000<=pK<=0.680000;
0.200000<=pL<=0.240000, 0.680000<=pK<=0.720000;
0.200000<=pL<=0.240000, 0.720000<=pK<=0.760000;
0.200000<=pL<=0.240000, 0.760000<=pK<=0.800000;
0.200000<=pL<=0.240000, 0.800000<=pK<=0.840000;
0.200000<=pL<=0.240000, 0.840000<=pK<=0.880000;
0.200000<=pL<=0.240000, 0.880000<=pK<=0.920000;
0.200000<=pL<=0.240000, 0.920000<=pK<=0.960000;
0.200000<=pL<=0.240000, 0.960000<=pK<=0.999990;
0.240000<=pL<=0.280000, 0.000010<=pK<=0.040000;
0.240000<=pL<=0.280000, 0.040000<=pK<=0.080000;
0.240000<=pL<=0.280000, 0.080000<=pK<=0.120000;
0.240000<=pL<=0.280000, 0.120000<=pK<=0.160000;
0.240000<=pL<=0.280000, 0.160000<=pK<=0.200000;
0.240000<=pL<=0.280000, 0.200000<=pK<=0.240000;
0.240000<=pL<=0.280000, 0.240000<=pK<=0.280000;
0.240000<=pL<=0.280000, 0.280000<=pK<=0.320000;
0.240000<=pL<=0.280000, 0.320000<=pK<=0.360000;
0.240000<=pL<=0.280000, 0.360000<=pK<=0.400000;
0.240000<=pL<=0.280000, 0.400000<=pK<=0.440000;
0.240000<=pL<=0.280000, 0.440000<=pK<=0.480000;
0.240000<=pL<=0.280000, 0.480000<=pK<=0.520000;
0.240000<=pL<=0.280000, 0.520000<=pK<=0.560000;
0.240000<=pL<=0.280000, 0.560000<=pK<=0.600000;
0.240000<=pL<=0.280000, 0.600000<=pK<=0.640000;
0.240000<=pL<=0.280000, 0.640000<=pK<=0.680000;
0.240000<=pL<=0.280000, 0.680000<=pK<=0.720000;
0.240000<=pL<=0.280000, 0.720000<=pK<=0.760000;
0.240000<=pL<=0.280000, 0.760000<=pK<=0.800000;
0.240000<=pL<=0.280000, 0.800000<=pK<=0.840000;
0.240000<=pL<=0.280000, 0.840000<=pK<=0.880000;
0.240000<=pL<=0.280000, 0.880000<=pK<=0.920000;
0.240000<=pL<=0.280000, 0.920000<=pK<=0.960000;
0.240000<=pL<=0.280000, 0.960000<=pK<=0.999990;
0.280000<=pL<=0.320000, 0.000010<=pK<=0.040000;
0.280000<=pL<=0.320000, 0.040000<=pK<=0.080000;
0.280000<=pL<=0.320000, 0.080000<=pK<=0.120000;
0.280000<=pL<=0.320000, 0.120000<=pK<=0.160000;
0.280000<=pL<=0.320000, 0.160000<=pK<=0.200000;
0.280000<=pL<=0.320000, 0.200000<=pK<=0.240000;
0.280000<=pL<=0.320000, 0.240000<=pK<=0.280000;
0.280000<=pL<=0.320000, 0.280000<=pK<=0.320000;
0.280000<=pL<=0.320000, 0.320000<=pK<=0.360000;
0.280000<=pL<=0.320000, 0.360000<=pK<=0.400000;
0.280000<=pL<=0.320000, 0.400000<=pK<=0.440000;
0.280000<=pL<=0.320000, 0.440000<=pK<=0.480000;
0.280000<=pL<=0.320000, 0.480000<=pK<=0.520000;
0.280000<=pL<=0.320000, 0.520000<=pK<=0.560000;
0.280000<=pL<=0.320000, 0.560000<=pK<=0.600000;
0.280000<=pL<=0.320000, 0.600000<=pK<=0.640000;
0.280000<=pL<=0.320000, 0.640000<=pK<=0.680000;
0.280000<=pL<=0.320000, 0.680000<=pK<=0.720000;
0.280000<=pL<=0.320000, 0.720000<=pK<=0.760000;
0.280000<=pL<=0.320000, 0.760000<=pK<=0.800000;
0.280000<=pL<=0.320000, 0.800000<=pK<=0.840000;
0.280000<=pL<=0.320000, 0.840000<=pK<=0.880000;
0.280000<=pL<=0.320000, 0.880000<=pK<=0.920000;
0.280000<=pL<=0.320000, 0.920000<=pK<=0.960000;
0.280000<=pL<=0.320000, 0.960000<=pK<=0.999990;
0.320000<=pL<=0.360000, 0.000010<=pK<=0.040000;
0.320000<=pL<=0.360000, 0.040000<=pK<=0.080000;
0.320000<=pL<=0.360000, 0.080000<=pK<=0.120000;
0.320000<=pL<=0.360000, 0.120000<=pK<=0.160000;
0.320000<=pL<=0.360000, 0.160000<=pK<=0.200000;
0.320000<=pL<=0.360000, 0.200000<=pK<=0.240000;
0.320000<=pL<=0.360000, 0.240000<=pK<=0.280000;
0.320000<=pL<=0.360000, 0.280000<=pK<=0.320000;
0.320000<=pL<=0.360000, 0.320000<=pK<=0.360000;
0.320000<=pL<=0.360000, 0.360000<=pK<=0.400000;
0.320000<=pL<=0.360000, 0.400000<=pK<=0.440000;
0.320000<=pL<=0.360000, 0.440000<=pK<=0.480000;
0.320000<=pL<=0.360000, 0.480000<=pK<=0.520000;
0.320000<=pL<=0.360000, 0.520000<=pK<=0.560000;
0.320000<=pL<=0.360000, 0.560000<=pK<=0.600000;
0.320000<=pL<=0.360000, 0.600000<=pK<=0.640000;
0.320000<=pL<=0.360000, 0.640000<=pK<=0.680000;
0.320000<=pL<=0.360000, 0.680000<=pK<=0.720000;
0.320000<=pL<=0.360000, 0.720000<=pK<=0.760000;
0.320000<=pL<=0.360000, 0.760000<=pK<=0.800000;
0.320000<=pL<=0.360000, 0.800000<=pK<=0.840000;
0.320000<=pL<=0.360000, 0.840000<=pK<=0.880000;
0.320000<=pL<=0.360000, 0.880000<=pK<=0.920000;
0.320000<=pL<=0.360000, 0.920000<=pK<=0.960000;
0.320000<=pL<=0.360000, 0.960000<=pK<=0.999990;
0.360000<=pL<=0.400000, 0.000010<=pK<=0.040000;
0.360000<=pL<=0.400000, 0.040000<=pK<=0.080000;
0.360000<=pL<=0.400000, 0.080000<=pK<=0.120000;
0.360000<=pL<=0.400000, 0.120000<=pK<=0.160000;
0.360000<=pL<=0.400000, 0.160000<=pK<=0.200000;
0.360000<=pL<=0.400000, 0.200000<=pK<=0.240000;
0.360000<=pL<=0.400000, 0.240000<=pK<=0.280000;
0.360000<=pL<=0.400000, 0.280000<=pK<=0.320000;
0.360000<=pL<=0.400000, 0.320000<=pK<=0.360000;
0.360000<=pL<=0.400000, 0.360000<=pK<=0.400000;
0.360000<=pL<=0.400000, 0.400000<=pK<=0.440000;
0.360000<=pL<=0.400000, 0.440000<=pK<=0.480000;
0.360000<=pL<=0.400000, 0.480000<=pK<=0.520000;
0.360000<=pL<=0.400000, 0.520000<=pK<=0.560000;
0.360000<=pL<=0.400000, 0.560000<=pK<=0.600000;
0.360000<=pL<=0.400000, 0.600000<=pK<=0.640000;
0.360000<=pL<=0.400000, 0.640000<=pK<=0.680000;
0.360000<=pL<=0.400000, 0.680000<=pK<=0.720000;
0.360000<=pL<=0.400000, 0.720000<=pK<=0.760000;
0.360000<=pL<=0.400000, 0.760000<=pK<=0.800000;
0.360000<=pL<=0.400000, 0.800000<=pK<=0.840000;
0.360000<=pL<=0.400000, 0.840000<=pK<=0.880000;
0.360000<=pL<=0.400000, 0.880000<=pK<=0.920000;
0.360000<=pL<=0.400000, 0.920000<=pK<=0.960000;
0.360000<=pL<=0.400000, 0.960000<=pK<=0.999990;
0.400000<=pL<=0.440000, 0.000010<=pK<=0.040000;
0.400000<=pL<=0.440000, 0.040000<=pK<=0.080000;
0.400000<=pL<=0.440000, 0.080000<=pK<=0.120000;
0.400000<=pL<=0.440000, 0.120000<=pK<=0.160000;
0.400000<=pL<=0.440000, 0.160000<=pK<=0.200000;
0.400000<=pL<=0.440000, 0.200000<=pK<=0.240000;
0.400000<=pL<=0.440000, 0.240000<=pK<=0.280000;
0.400000<=pL<=0.440000, 0.280000<=pK<=0.320000;
0.400000<=pL<=0.440000, 0.320000<=pK<=0.360000;
0.400000<=pL<=0.440000, 0.360000<=pK<=0.400000;
0.400000<=pL<=0.440000, 0.400000<=pK<=0.440000;
0.400000<=pL<=0.440000, 0.440000<=pK<=0.480000;
0.400000<=pL<=0.440000, 0.480000<=pK<=0.520000;
0.400000<=pL<=0.440000, 0.520000<=pK<=0.560000;
0.400000<=pL<=0.440000, 0.560000<=pK<=0.600000;
0.400000<=pL<=0.440000, 0.600000<=pK<=0.640000;
0.400000<=pL<=0.440000, 0.640000<=pK<=0.680000;
0.400000<=pL<=0.440000, 0.680000<=pK<=0.720000;
0.400000<=pL<=0.440000, 0.720000<=pK<=0.760000;
0.400000<=pL<=0.440000, 0.760000<=pK<=0.800000;
0.400000<=pL<=0.440000, 0.800000<=pK<=0.840000;
0.400000<=pL<=0.440000, 0.840000<=pK<=0.880000;
0.400000<=pL<=0.440000, 0.880000<=pK<=0.920000;
0.400000<=pL<=0.440000, 0.920000<=pK<=0.960000;
0.400000<=pL<=0.440000, 0.960000<=pK<=0.999990;
0.440000<=pL<=0.480000, 0.000010<=pK<=0.040000;
0.440000<=pL<=0.480000, 0.040000<=pK<=0.080000;
0.440000<=pL<=0.480000, 0.080000<=pK<=0.120000;
0.440000<=pL<=0.480000, 0.120000<=pK<=0.160000;
0.440000<=pL<=0.480000, 0.160000<=pK<=0.200000;
0.440000<=pL<=0.480000, 0.200000<=pK<=0.240000;
0.440000<=pL<=0.480000, 0.240000<=pK<=0.280000;
0.440000<=pL<=0.480000, 0.280000<=pK<=0.320000;
0.440000<=pL<=0.480000, 0.320000<=pK<=0.360000;
0.440000<=pL<=0.480000, 0.360000<=pK<=0.400000;
0.440000<=pL<=0.480000, 0.400000<=pK<=0.440000;
0.440000<=pL<=0.480000, 0.440000<=pK<=0.480000;
0.440000<=pL<=0.480000, 0.480000<=pK<=0.520000;
0.440000<=pL<=0.480000, 0.520000<=pK<=0.560000;
0.440000<=pL<=0.480000, 0.560000<=pK<=0.600000;
0.440000<=pL<=0.480000, 0.600000<=pK<=0.640000;
0.440000<=pL<=0.480000, 0.640000<=pK<=0.680000;
0.440000<=pL<=0.480000, 0.680000<=pK<=0.720000;
0.440000<=pL<=0.480000, 0.720000<=pK<=0.760000;
0.440000<=pL<=0.480000, 0.760000<=pK<=0.800000;
0.440000<=pL<=0.480000, 0.800000<=pK<=0.840000;
0.440000<=pL<=0.480000, 0.840000<=pK<=0.880000;
0.440000<=pL<=0.480000, 0.880000<=pK<=0.920000;
0.440000<=pL<=0.480000, 0.920000<=pK<=0.960000;
0.440000<=pL<=0.480000, 0.960000<=pK<=0.999990;
0.480000<=pL<=0.520000, 0.000010<=pK<=0.040000;
0.480000<=pL<=0.520000, 0.040000<=pK<=0.080000;
0.480000<=pL<=0.520000, 0.080000<=pK<=0.120000;
0.480000<=pL<=0.520000, 0.120000<=pK<=0.160000;
0.480000<=pL<=0.520000, 0.160000<=pK<=0.200000;
0.480000<=pL<=0.520000, 0.200000<=pK<=0.240000;
0.480000<=pL<=0.520000, 0.240000<=pK<=0.280000;
0.480000<=pL<=0.520000, 0.280000<=pK<=0.320000;
0.480000<=pL<=0.520000, 0.320000<=pK<=0.360000;
0.480000<=pL<=0.520000, 0.360000<=pK<=0.400000;
0.480000<=pL<=0.520000, 0.400000<=pK<=0.440000;
0.480000<=pL<=0.520000, 0.440000<=pK<=0.480000;
0.480000<=pL<=0.520000, 0.480000<=pK<=0.520000;
0.480000<=pL<=0.520000, 0.520000<=pK<=0.560000;
0.480000<=pL<=0.520000, 0.560000<=pK<=0.600000;
0.480000<=pL<=0.520000, 0.600000<=pK<=0.640000;
0.480000<=pL<=0.520000, 0.640000<=pK<=0.680000;
0.480000<=pL<=0.520000, 0.680000<=pK<=0.720000;
0.480000<=pL<=0.520000, 0.720000<=pK<=0.760000;
0.480000<=pL<=0.520000, 0.760000<=pK<=0.800000;
0.480000<=pL<=0.520000, 0.800000<=pK<=0.840000;
0.480000<=pL<=0.520000, 0.840000<=pK<=0.880000;
0.480000<=pL<=0.520000, 0.880000<=pK<=0.920000;
0.480000<=pL<=0.520000, 0.920000<=pK<=0.960000;
0.480000<=pL<=0.520000, 0.960000<=pK<=0.999990;
0.520000<=pL<=0.560000, 0.000010<=pK<=0.040000;
0.520000<=pL<=0.560000, 0.040000<=pK<=0.080000;
0.520000<=pL<=0.560000, 0.080000<=pK<=0.120000;
0.520000<=pL<=0.560000, 0.120000<=pK<=0.160000;
0.520000<=pL<=0.560000, 0.160000<=pK<=0.200000;
0.520000<=pL<=0.560000, 0.200000<=pK<=0.240000;
0.520000<=pL<=0.560000, 0.240000<=pK<=0.280000;
0.520000<=pL<=0.560000, 0.280000<=pK<=0.320000;
0.520000<=pL<=0.560000, 0.320000<=pK<=0.360000;
0.520000<=pL<=0.560000, 0.360000<=pK<=0.400000;
0.520000<=pL<=0.560000, 0.400000<=pK<=0.440000;
0.520000<=pL<=0.560000, 0.440000<=pK<=0.480000;
0.520000<=pL<=0.560000, 0.480000<=pK<=0.520000;
0.520000<=pL<=0.560000, 0.520000<=pK<=0.560000;
0.520000<=pL<=0.560000, 0.560000<=pK<=0.600000;
0.520000<=pL<=0.560000, 0.600000<=pK<=0.640000;
0.520000<=pL<=0.560000, 0.640000<=pK<=0.680000;
0.520000<=pL<=0.560000, 0.680000<=pK<=0.720000;
0.520000<=pL<=0.560000, 0.720000<=pK<=0.760000;
0.520000<=pL<=0.560000, 0.760000<=pK<=0.800000;
0.520000<=pL<=0.560000, 0.800000<=pK<=0.840000;
0.520000<=pL<=0.560000, 0.840000<=pK<=0.880000;
0.520000<=pL<=0.560000, 0.880000<=pK<=0.920000;
0.520000<=pL<=0.560000, 0.920000<=pK<=0.960000;
0.520000<=pL<=0.560000, 0.960000<=pK<=0.999990;
0.560000<=pL<=0.600000, 0.000010<=pK<=0.040000;
0.560000<=pL<=0.600000, 0.040000<=pK<=0.080000;
0.560000<=pL<=0.600000, 0.080000<=pK<=0.120000;
0.560000<=pL<=0.600000, 0.120000<=pK<=0.160000;
0.560000<=pL<=0.600000, 0.160000<=pK<=0.200000;
0.560000<=pL<=0.600000, 0.200000<=pK<=0.240000;
0.560000<=pL<=0.600000, 0.240000<=pK<=0.280000;
0.560000<=pL<=0.600000, 0.280000<=pK<=0.320000;
0.560000<=pL<=0.600000, 0.320000<=pK<=0.360000;
0.560000<=pL<=0.600000, 0.360000<=pK<=0.400000;
0.560000<=pL<=0.600000, 0.400000<=pK<=0.440000;
0.560000<=pL<=0.600000, 0.440000<=pK<=0.480000;
0.560000<=pL<=0.600000, 0.480000<=pK<=0.520000;
0.560000<=pL<=0.600000, 0.520000<=pK<=0.560000;
0.560000<=pL<=0.600000, 0.560000<=pK<=0.600000;
0.560000<=pL<=0.600000, 0.600000<=pK<=0.640000;
0.560000<=pL<=0.600000, 0.640000<=pK<=0.680000;
0.560000<=pL<=0.600000, 0.680000<=pK<=0.720000;
0.560000<=pL<=0.600000, 0.720000<=pK<=0.760000;
0.560000<=pL<=0.600000, 0.760000<=pK<=0.800000;
0.560000<=pL<=0.600000, 0.800000<=pK<=0.840000;
0.560000<=pL<=0.600000, 0.840000<=pK<=0.880000;
0.560000<=pL<=0.600000, 0.880000<=pK<=0.920000;
0.560000<=pL<=0.600000, 0.920000<=pK<=0.960000;
0.560000<=pL<=0.600000, 0.960000<=pK<=0.999990;
0.600000<=pL<=0.640000, 0.000010<=pK<=0.040000;
0.600000<=pL<=0.640000, 0.040000<=pK<=0.080000;
0.600000<=pL<=0.640000, 0.080000<=pK<=0.120000;
0.600000<=pL<=0.640000, 0.120000<=pK<=0.160000;
0.600000<=pL<=0.640000, 0.160000<=pK<=0.200000;
0.600000<=pL<=0.640000, 0.200000<=pK<=0.240000;
0.600000<=pL<=0.640000, 0.240000<=pK<=0.280000;
0.600000<=pL<=0.640000, 0.280000<=pK<=0.320000;
0.600000<=pL<=0.640000, 0.320000<=pK<=0.360000;
0.600000<=pL<=0.640000, 0.360000<=pK<=0.400000;
0.600000<=pL<=0.640000, 0.400000<=pK<=0.440000;
0.600000<=pL<=0.640000, 0.440000<=pK<=0.480000;
0.600000<=pL<=0.640000, 0.480000<=pK<=0.520000;
0.600000<=pL<=0.640000, 0.520000<=pK<=0.560000;
0.600000<=pL<=0.640000, 0.560000<=pK<=0.600000;
0.600000<=pL<=0.640000, 0.600000<=pK<=0.640000;
0.600000<=pL<=0.640000, 0.640000<=pK<=0.680000;
0.600000<=pL<=0.640000, 0.680000<=pK<=0.720000;
0.600000<=pL<=0.640000, 0.720000<=pK<=0.760000;
0.600000<=pL<=0.640000, 0.760000<=pK<=0.800000;
0.600000<=pL<=0.640000, 0.800000<=pK<=0.840000;
0.600000<=pL<=0.640000, 0.840000<=pK<=0.880000;
0.600000<=pL<=0.640000, 0.880000<=pK<=0.920000;
0.600000<=pL<=0.640000, 0.920000<=pK<=0.960000;
0.600000<=pL<=0.640000, 0.960000<=pK<=0.999990;
0.640000<=pL<=0.680000, 0.000010<=pK<=0.040000;
0.640000<=pL<=0.680000, 0.040000<=pK<=0.080000;
0.640000<=pL<=0.680000, 0.080000<=pK<=0.120000;
0.640000<=pL<=0.680000, 0.120000<=pK<=0.160000;
0.640000<=pL<=0.680000, 0.160000<=pK<=0.200000;
0.640000<=pL<=0.680000, 0.200000<=pK<=0.240000;
0.640000<=pL<=0.680000, 0.240000<=pK<=0.280000;
0.640000<=pL<=0.680000, 0.280000<=pK<=0.320000;
0.640000<=pL<=0.680000, 0.320000<=pK<=0.360000;
0.640000<=pL<=0.680000, 0.360000<=pK<=0.400000;
0.640000<=pL<=0.680000, 0.400000<=pK<=0.440000;
0.640000<=pL<=0.680000, 0.440000<=pK<=0.480000;
0.640000<=pL<=0.680000, 0.480000<=pK<=0.520000;
0.640000<=pL<=0.680000, 0.520000<=pK<=0.560000;
0.640000<=pL<=0.680000, 0.560000<=pK<=0.600000;
0.640000<=pL<=0.680000, 0.600000<=pK<=0.640000;
0.640000<=pL<=0.680000, 0.640000<=pK<=0.680000;
0.640000<=pL<=0.680000, 0.680000<=pK<=0.720000;
0.640000<=pL<=0.680000, 0.720000<=pK<=0.760000;
0.640000<=pL<=0.680000, 0.760000<=pK<=0.800000;
0.640000<=pL<=0.680000, 0.800000<=pK<=0.840000;
0.640000<=pL<=0.680000, 0.840000<=pK<=0.880000;
0.640000<=pL<=0.680000, 0.880000<=pK<=0.920000;
0.640000<=pL<=0.680000, 0.920000<=pK<=0.960000;
0.640000<=pL<=0.680000, 0.960000<=pK<=0.999990;
0.680000<=pL<=0.720000, 0.000010<=pK<=0.040000;
0.680000<=pL<=0.720000, 0.040000<=pK<=0.080000;
0.680000<=pL<=0.720000, 0.080000<=pK<=0.120000;
0.680000<=pL<=0.720000, 0.120000<=pK<=0.160000;
0.680000<=pL<=0.720000, 0.160000<=pK<=0.200000;
0.680000<=pL<=0.720000, 0.200000<=pK<=0.240000;
0.680000<=pL<=0.720000, 0.240000<=pK<=0.280000;
0.680000<=pL<=0.720000, 0.280000<=pK<=0.320000;
0.680000<=pL<=0.720000, 0.320000<=pK<=0.360000;
0.680000<=pL<=0.720000, 0.360000<=pK<=0.400000;
0.680000<=pL<=0.720000, 0.400000<=pK<=0.440000;
0.680000<=pL<=0.720000, 0.440000<=pK<=0.480000;
0.680000<=pL<=0.720000, 0.480000<=pK<=0.520000;
0.680000<=pL<=0.720000, 0.520000<=pK<=0.560000;
0.680000<=pL<=0.720000, 0.560000<=pK<=0.600000;
0.680000<=pL<=0.720000, 0.600000<=pK<=0.640000;
0.680000<=pL<=0.720000, 0.640000<=pK<=0.680000;
0.680000<=pL<=0.720000, 0.680000<=pK<=0.720000;
0.680000<=pL<=0.720000, 0.720000<=pK<=0.760000;
0.680000<=pL<=0.720000, 0.760000<=pK<=0.800000;
0.680000<=pL<=0.720000, 0.800000<=pK<=0.840000;
0.680000<=pL<=0.720000, 0.840000<=pK<=0.880000;
0.680000<=pL<=0.720000, 0.880000<=pK<=0.920000;
0.680000<=pL<=0.720000, 0.920000<=pK<=0.960000;
0.680000<=pL<=0.720000, 0.960000<=pK<=0.999990;
0.720000<=pL<=0.760000, 0.000010<=pK<=0.040000;
0.720000<=pL<=0.760000, 0.040000<=pK<=0.080000;
0.720000<=pL<=0.760000, 0.080000<=pK<=0.120000;
0.720000<=pL<=0.760000, 0.120000<=pK<=0.160000;
0.720000<=pL<=0.760000, 0.160000<=pK<=0.200000;
0.720000<=pL<=0.760000, 0.200000<=pK<=0.240000;
0.720000<=pL<=0.760000, 0.240000<=pK<=0.280000;
0.720000<=pL<=0.760000, 0.280000<=pK<=0.320000;
0.720000<=pL<=0.760000, 0.320000<=pK<=0.360000;
0.720000<=pL<=0.760000, 0.360000<=pK<=0.400000;
0.720000<=pL<=0.760000, 0.400000<=pK<=0.440000;
0.720000<=pL<=0.760000, 0.440000<=pK<=0.480000;
0.720000<=pL<=0.760000, 0.480000<=pK<=0.520000;
0.720000<=pL<=0.760000, 0.520000<=pK<=0.560000;
0.720000<=pL<=0.760000, 0.560000<=pK<=0.600000;
0.720000<=pL<=0.760000, 0.600000<=pK<=0.640000;
0.720000<=pL<=0.760000, 0.640000<=pK<=0.680000;
0.720000<=pL<=0.760000, 0.680000<=pK<=0.720000;
0.720000<=pL<=0.760000, 0.720000<=pK<=0.760000;
0.720000<=pL<=0.760000, 0.760000<=pK<=0.800000;
0.720000<=pL<=0.760000, 0.800000<=pK<=0.840000;
0.720000<=pL<=0.760000, 0.840000<=pK<=0.880000;
0.720000<=pL<=0.760000, 0.880000<=pK<=0.920000;
0.720000<=pL<=0.760000, 0.920000<=pK<=0.960000;
0.720000<=pL<=0.760000, 0.960000<=pK<=0.999990;
0.760000<=pL<=0.800000, 0.000010<=pK<=0.040000;
0.760000<=pL<=0.800000, 0.040000<=pK<=0.080000;
0.760000<=pL<=0.800000, 0.080000<=pK<=0.120000;
0.760000<=pL<=0.800000, 0.120000<=pK<=0.160000;
0.760000<=pL<=0.800000, 0.160000<=pK<=0.200000;
0.760000<=pL<=0.800000, 0.200000<=pK<=0.240000;
0.760000<=pL<=0.800000, 0.240000<=pK<=0.280000;
0.760000<=pL<=0.800000, 0.280000<=pK<=0.320000;
0.760000<=pL<=0.800000, 0.320000<=pK<=0.360000;
0.760000<=pL<=0.800000, 0.360000<=pK<=0.400000;
0.760000<=pL<=0.800000, 0.400000<=pK<=0.440000;
0.760000<=pL<=0.800000, 0.440000<=pK<=0.480000;
0.760000<=pL<=0.800000, 0.480000<=pK<=0.520000;
0.760000<=pL<=0.800000, 0.520000<=pK<=0.560000;
0.760000<=pL<=0.800000, 0.560000<=pK<=0.600000;
0.760000<=pL<=0.800000, 0.600000<=pK<=0.640000;
0.760000<=pL<=0.800000, 0.640000<=pK<=0.680000;
0.760000<=pL<=0.800000, 0.680000<=pK<=0.720000;
0.760000<=pL<=0.800000, 0.720000<=pK<=0.760000;
0.760000<=pL<=0.800000, 0.760000<=pK<=0.800000;
0.760000<=pL<=0.800000, 0.800000<=pK<=0.840000;
0.760000<=pL<=0.800000, 0.840000<=pK<=0.880000;
0.760000<=pL<=0.800000, 0.880000<=pK<=0.920000;
0.760000<=pL<=0.800000, 0.920000<=pK<=0.960000;
0.760000<=pL<=0.800000, 0.960000<=pK<=0.999990;
0.800000<=pL<=0.840000, 0.000010<=pK<=0.040000;
0.800000<=pL<=0.840000, 0.040000<=pK<=0.080000;
0.800000<=pL<=0.840000, 0.080000<=pK<=0.120000;
0.800000<=pL<=0.840000, 0.120000<=pK<=0.160000;
0.800000<=pL<=0.840000, 0.160000<=pK<=0.200000;
0.800000<=pL<=0.840000, 0.200000<=pK<=0.240000;
0.800000<=pL<=0.840000, 0.240000<=pK<=0.280000;
0.800000<=pL<=0.840000, 0.280000<=pK<=0.320000;
0.800000<=pL<=0.840000, 0.320000<=pK<=0.360000;
0.800000<=pL<=0.840000, 0.360000<=pK<=0.400000;
0.800000<=pL<=0.840000, 0.400000<=pK<=0.440000;
0.800000<=pL<=0.840000, 0.440000<=pK<=0.480000;
0.800000<=pL<=0.840000, 0.480000<=pK<=0.520000;
0.800000<=pL<=0.840000, 0.520000<=pK<=0.560000;
0.800000<=pL<=0.840000, 0.560000<=pK<=0.600000;
0.800000<=pL<=0.840000, 0.600000<=pK<=0.640000;
0.800000<=pL<=0.840000, 0.640000<=pK<=0.680000;
0.800000<=pL<=0.840000, 0.680000<=pK<=0.720000;
0.800000<=pL<=0.840000, 0.720000<=pK<=0.760000;
0.800000<=pL<=0.840000, 0.760000<=pK<=0.800000;
0.800000<=pL<=0.840000, 0.800000<=pK<=0.840000;
0.800000<=pL<=0.840000, 0.840000<=pK<=0.880000;
0.800000<=pL<=0.840000, 0.880000<=pK<=0.920000;
0.800000<=pL<=0.840000, 0.920000<=pK<=0.960000;
0.800000<=pL<=0.840000, 0.960000<=pK<=0.999990;
0.840000<=pL<=0.880000, 0.000010<=pK<=0.040000;
0.840000<=pL<=0.880000, 0.040000<=pK<=0.080000;
0.840000<=pL<=0.880000, 0.080000<=pK<=0.120000;
0.840000<=pL<=0.880000, 0.120000<=pK<=0.160000;
0.840000<=pL<=0.880000, 0.160000<=pK<=0.200000;
0.840000<=pL<=0.880000, 0.200000<=pK<=0.240000;
0.840000<=pL<=0.880000, 0.240000<=pK<=0.280000;
0.840000<=pL<=0.880000, 0.280000<=pK<=0.320000;
0.840000<=pL<=0.880000, 0.320000<=pK<=0.360000;
0.840000<=pL<=0.880000, 0.360000<=pK<=0.400000;
0.840000<=pL<=0.880000, 0.400000<=pK<=0.440000;
0.840000<=pL<=0.880000, 0.440000<=pK<=0.480000;
0.840000<=pL<=0.880000, 0.480000<=pK<=0.520000;
0.840000<=pL<=0.880000, 0.520000<=pK<=0.560000;
0.840000<=pL<=0.880000, 0.560000<=pK<=0.600000;
0.840000<=pL<=0.880000, 0.600000<=pK<=0.640000;
0.840000<=pL<=0.880000, 0.640000<=pK<=0.680000;
0.840000<=pL<=0.880000, 0.680000<=pK<=0.720000;
0.840000<=pL<=0.880000, 0.720000<=pK<=0.760000;
0.840000<=pL<=0.880000, 0.760000<=pK<=0.800000;
0.840000<=pL<=0.880000, 0.800000<=pK<=0.840000;
0.840000<=pL<=0.880000, 0.840000<=pK<=0.880000;
0.840000<=pL<=0.880000, 0.880000<=pK<=0.920000;
0.840000<=pL<=0.880000, 0.920000<=pK<=0.960000;
0.840000<=pL<=0.880000, 0.960000<=pK<=0.999990;
0.880000<=pL<=0.920000, 0.000010<=pK<=0.040000;
0.880000<=pL<=0.920000, 0.040000<=pK<=0.080000;
0.880000<=pL<=0.920000, 0.080000<=pK<=0.120000;
0.880000<=pL<=0.920000, 0.120000<=pK<=0.160000;
0.880000<=pL<=0.920000, 0.160000<=pK<=0.200000;
0.880000<=pL<=0.920000, 0.200000<=pK<=0.240000;
0.880000<=pL<=0.920000, 0.240000<=pK<=0.280000;
0.880000<=pL<=0.920000, 0.280000<=pK<=0.320000;
0.880000<=pL<=0.920000, 0.320000<=pK<=0.360000;
0.880000<=pL<=0.920000, 0.360000<=pK<=0.400000;
0.880000<=pL<=0.920000, 0.400000<=pK<=0.440000;
0.880000<=pL<=0.920000, 0.440000<=pK<=0.480000;
0.880000<=pL<=0.920000, 0.480000<=pK<=0.520000;
0.880000<=pL<=0.920000, 0.520000<=pK<=0.560000;
0.880000<=pL<=0.920000, 0.560000<=pK<=0.600000;
0.880000<=pL<=0.920000, 0.600000<=pK<=0.640000;
0.880000<=pL<=0.920000, 0.640000<=pK<=0.680000;
0.880000<=pL<=0.920000, 0.680000<=pK<=0.720000;
0.880000<=pL<=0.920000, 0.720000<=pK<=0.760000;
0.880000<=pL<=0.920000, 0.760000<=pK<=0.800000;
0.880000<=pL<=0.920000, 0.800000<=pK<=0.840000;
0.880000<=pL<=0.920000, 0.840000<=pK<=0.880000;
0.880000<=pL<=0.920000, 0.880000<=pK<=0.920000;
0.880000<=pL<=0.920000, 0.920000<=pK<=0.960000;
0.880000<=pL<=0.920000, 0.960000<=pK<=0.999990;
0.920000<=pL<=0.960000, 0.000010<=pK<=0.040000;
0.920000<=pL<=0.960000, 0.040000<=pK<=0.080000;
0.920000<=pL<=0.960000, 0.080000<=pK<=0.120000;
0.920000<=pL<=0.960000, 0.120000<=pK<=0.160000;
0.920000<=pL<=0.960000, 0.160000<=pK<=0.200000;
0.920000<=pL<=0.960000, 0.200000<=pK<=0.240000;
0.920000<=pL<=0.960000, 0.240000<=pK<=0.280000;
0.920000<=pL<=0.960000, 0.280000<=pK<=0.320000;
0.920000<=pL<=0.960000, 0.320000<=pK<=0.360000;
0.920000<=pL<=0.960000, 0.360000<=pK<=0.400000;
0.920000<=pL<=0.960000, 0.400000<=pK<=0.440000;
0.920000<=pL<=0.960000, 0.440000<=pK<=0.480000;
0.920000<=pL<=0.960000, 0.480000<=pK<=0.520000;
0.920000<=pL<=0.960000, 0.520000<=pK<=0.560000;
0.920000<=pL<=0.960000, 0.560000<=pK<=0.600000;
0.920000<=pL<=0.960000, 0.600000<=pK<=0.640000;
0.920000<=pL<=0.960000, 0.640000<=pK<=0.680000;
0.920000<=pL<=0.960000, 0.680000<=pK<=0.720000;
0.920000<=pL<=0.960000, 0.720000<=pK<=0.760000;
0.920000<=pL<=0.960000, 0.760000<=pK<=0.800000;
0.920000<=pL<=0.960000, 0.800000<=pK<=0.840000;
0.920000<=pL<=0.960000, 0.840000<=pK<=0.880000;
0.920000<=pL<=0.960000, 0.880000<=pK<=0.920000;
0.920000<=pL<=0.960000, 0.920000<=pK<=0.960000;
0.920000<=pL<=0.960000, 0.960000<=pK<=0.999990;
0.960000<=pL<=0.999990, 0.000010<=pK<=0.040000;
0.960000<=pL<=0.999990, 0.040000<=pK<=0.080000;
0.960000<=pL<=0.999990, 0.080000<=pK<=0.120000;
0.960000<=pL<=0.999990, 0.120000<=pK<=0.160000;
0.960000<=pL<=0.999990, 0.160000<=pK<=0.200000;
0.960000<=pL<=0.999990, 0.200000<=pK<=0.240000;
0.960000<=pL<=0.999990, 0.240000<=pK<=0.280000;
0.960000<=pL<=0.999990, 0.280000<=pK<=0.320000;
0.960000<=pL<=0.999990, 0.320000<=pK<=0.360000;
0.960000<=pL<=0.999990, 0.360000<=pK<=0.400000;
0.960000<=pL<=0.999990, 0.400000<=pK<=0.440000;
0.960000<=pL<=0.999990, 0.440000<=pK<=0.480000;
0.960000<=pL<=0.999990, 0.480000<=pK<=0.520000;
0.960000<=pL<=0.999990, 0.520000<=pK<=0.560000;
0.960000<=pL<=0.999990, 0.560000<=pK<=0.600000;
0.960000<=pL<=0.999990, 0.600000<=pK<=0.640000;
0.960000<=pL<=0.999990, 0.640000<=pK<=0.680000;
0.960000<=pL<=0.999990, 0.680000<=pK<=0.720000;
0.960000<=pL<=0.999990, 0.720000<=pK<=0.760000;
0.960000<=pL<=0.999990, 0.760000<=pK<=0.800000;
0.960000<=pL<=0.999990, 0.800000<=pK<=0.840000;
0.960000<=pL<=0.999990, 0.840000<=pK<=0.880000;
0.960000<=pL<=0.999990, 0.880000<=pK<=0.920000;
0.960000<=pL<=0.999990, 0.920000<=pK<=0.960000;
0.960000<=pL<=0.999990, 0.960000<=pK<=0.999990;

2
examples/pdtmc/brp_rewards2/brp_rewards2_space.txt

@ -0,0 +1,2 @@
0.000010<=pL<=0.999990, 0.000010<=pK<=0.999990;

147
examples/pdtmc/brp_rewards2/brp_rewards512_5.pm

@ -0,0 +1,147 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 512;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg=0.4;
const double TOAck=0.6;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

147
examples/pdtmc/brp_rewards2/brp_rewards64_4.pm

@ -0,0 +1,147 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 64;
// maximum number of retransmissions
const int MAX = 4;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg=0.4;
const double TOAck=0.6;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

2
examples/pdtmc/brp_rewards2/models

@ -0,0 +1,2 @@
brp_rewards2.pm -const N=512,MAX=5
brp_rewards2.pm -const N=4096,MAX=5

146
examples/pdtmc/brp_rewards4/brp_rewards16_2.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 16;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg;
const double TOAck;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

146
examples/pdtmc/brp_rewards4/brp_rewards256_5.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg;
const double TOAck;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

146
examples/pdtmc/brp_rewards4/brp_rewards4.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N;
// maximum number of retransmissions
const int MAX;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg;
const double TOAck;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

2
examples/pdtmc/brp_rewards4/brp_rewards4.prctl

@ -0,0 +1,2 @@
R<3 [ F ((s=5) | (s=0&srep=3)) ]

625
examples/pdtmc/brp_rewards4/brp_rewards4_regions.txt

@ -0,0 +1,625 @@
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.000010<=pL<=0.200000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.200000<=pL<=0.400000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.400000<=pL<=0.600000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.600000<=pL<=0.800000, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.000010<=pK<=0.200000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.200000<=pK<=0.400000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.400000<=pK<=0.600000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.600000<=pK<=0.800000, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.000010<=TOMsg<=0.200000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.200000<=TOMsg<=0.400000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.400000<=TOMsg<=0.600000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.600000<=TOMsg<=0.800000, 0.800000<=TOAck<=0.999990;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.000010<=TOAck<=0.200000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.200000<=TOAck<=0.400000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.400000<=TOAck<=0.600000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.600000<=TOAck<=0.800000;
0.800000<=pL<=0.999990, 0.800000<=pK<=0.999990, 0.800000<=TOMsg<=0.999990, 0.800000<=TOAck<=0.999990;

625
examples/pdtmc/brp_rewards4/brp_rewards4_regions2.txt

@ -0,0 +1,625 @@
0.000010<=pL<=0.040000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.000010<=pL<=0.040000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.040000<=pL<=0.080000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.080000<=pL<=0.120000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.120000<=pL<=0.160000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.160000<=pL<=0.200000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.200000<=pL<=0.240000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.240000<=pL<=0.280000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.280000<=pL<=0.320000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.320000<=pL<=0.360000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.360000<=pL<=0.400000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.400000<=pL<=0.440000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.440000<=pL<=0.480000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.480000<=pL<=0.520000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.520000<=pL<=0.560000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.560000<=pL<=0.600000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.600000<=pL<=0.640000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.640000<=pL<=0.680000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.680000<=pL<=0.720000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.720000<=pL<=0.760000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.760000<=pL<=0.800000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.800000<=pL<=0.840000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.840000<=pL<=0.880000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.880000<=pL<=0.920000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.920000<=pL<=0.960000, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.000010<=pK<=0.040000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.040000<=pK<=0.080000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.080000<=pK<=0.120000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.120000<=pK<=0.160000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.160000<=pK<=0.200000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.200000<=pK<=0.240000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.240000<=pK<=0.280000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.280000<=pK<=0.320000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.320000<=pK<=0.360000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.360000<=pK<=0.400000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.400000<=pK<=0.440000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.440000<=pK<=0.480000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.480000<=pK<=0.520000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.520000<=pK<=0.560000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.560000<=pK<=0.600000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.600000<=pK<=0.640000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.640000<=pK<=0.680000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.680000<=pK<=0.720000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.720000<=pK<=0.760000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.760000<=pK<=0.800000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.800000<=pK<=0.840000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.840000<=pK<=0.880000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.880000<=pK<=0.920000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.920000<=pK<=0.960000, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;
0.960000<=pL<=0.999990, 0.960000<=pK<=0.999990, 0.35<=TOMsg<=0.45, 0.55<=TOAck<=0.65;

2
examples/pdtmc/brp_rewards4/brp_rewards4_space.txt

@ -0,0 +1,2 @@
0.000010<=pL<=0.999990, 0.000010<=pK<=0.999990, 0.000010<=TOMsg<=0.999990, 0.000010<=TOAck<=0.999990;

146
examples/pdtmc/brp_rewards4/brp_rewards512_5.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 512;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg;
const double TOAck;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

146
examples/pdtmc/brp_rewards4/brp_rewards64_4.pm

@ -0,0 +1,146 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
dtmc
// number of chunks
const int N = 64;
// maximum number of retransmissions
const int MAX = 4;
// reliability of channels
const double pL;
const double pK;
// timeouts
const double TOMsg;
const double TOAck;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
// prevents more than one file being sent
module tester
T : bool;
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule
rewards
[TO_Msg] true : TOMsg;
[TO_Ack] true : TOAck;
endrewards

2
examples/pdtmc/brp_rewards4/models

@ -0,0 +1,2 @@
brp_rewards4.pm -const N=256,MAX=5
brp_rewards4.pm -const N=5012,MAX=5

194
examples/pdtmc/crowds/crowds.pm

@ -0,0 +1,194 @@
// CROWDS [Reiter,Rubin]
// Vitaly Shmatikov, 2002
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
// note:
// Change everything marked CWDSIZ when changing the size of the crowd
// Change everything marked CWDMAX when increasing max size of the crowd
dtmc
// Model parameters
const double PF; // forwarding probability
const double badC; // probability that member is untrustworthy
// Probability of forwarding
// const double PF = 0.8;
// const double notPF = 0.2; // must be 1-PF
// Probability that a crowd member is bad
// const double badC = 0.1;
// const double badC = 0.091;
// const double badC = 0.167;
// const double goodC = 0.909; // must be 1-badC
// const double goodC = 0.833; // must be 1-badC
const int CrowdSize; // CWDSIZ: actual number of good crowd members
const int TotalRuns; // Total number of protocol runs to analyze
const int MaxGood=20; // CWDMAX: maximum number of good crowd members
// Process definitions
module crowds
// Auxiliary variables
launch: bool init true; // Start modeling?
newInstance: bool init false; // Initialize a new protocol instance?
runCount: [0..TotalRuns] init TotalRuns; // Counts protocol instances
start: bool init false; // Start the protocol?
run: bool init false; // Run the protocol?
lastSeen: [0..MaxGood] init 0; // Last crowd member to touch msg
good: bool init false; // Crowd member is good?
bad: bool init false; // ... bad?
recordLast: bool init false; // Record last seen crowd member?
badObserve: bool init false; // Bad members observes who sent msg?
deliver: bool init false; // Deliver message to destination?
done: bool init false; // Protocol instance finished?
// Counters for attackers' observations
// CWDMAX: 1 counter per each good crowd member
observe0: [0..TotalRuns];
observe1: [0..TotalRuns];
observe2: [0..TotalRuns];
observe3: [0..TotalRuns];
observe4: [0..TotalRuns];
observe5: [0..TotalRuns];
observe6: [0..TotalRuns];
observe7: [0..TotalRuns];
observe8: [0..TotalRuns];
observe9: [0..TotalRuns];
observe10: [0..TotalRuns];
observe11: [0..TotalRuns];
observe12: [0..TotalRuns];
observe13: [0..TotalRuns];
observe14: [0..TotalRuns];
observe15: [0..TotalRuns];
observe16: [0..TotalRuns];
observe17: [0..TotalRuns];
observe18: [0..TotalRuns];
observe19: [0..TotalRuns];
[] launch -> (newInstance'=true) & (runCount'=TotalRuns) & (launch'=false);
// Set up a newInstance protocol instance
[] newInstance & runCount>0 -> (runCount'=runCount-1) & (newInstance'=false) & (start'=true);
// SENDER
// Start the protocol
[] start -> (lastSeen'=0) & (run'=true) & (deliver'=false) & (start'=false);
// CROWD MEMBERS
// Good or bad crowd member?
[] !good & !bad & !deliver & run ->
1-badC : (good'=true) & (recordLast'=true) & (run'=false) +
badC : (bad'=true) & (badObserve'=true) & (run'=false);
// GOOD MEMBERS
// Forward with probability PF, else deliver
[] good & !deliver & run -> PF : (good'=false) + 1-PF : (deliver'=true);
// Record the last crowd member who touched the msg;
// all good members may appear with equal probability
// Note: This is backward. In the real protocol, each honest
// forwarder randomly chooses the next forwarder.
// Here, the identity of an honest forwarder is randomly
// chosen *after* it has forwarded the message.
[] recordLast & CrowdSize=2 ->
1/2 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/2 : (lastSeen'=1) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=3 ->
1/3 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/3 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/3 : (lastSeen'=2) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=4 ->
1/4 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/4 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/4 : (lastSeen'=2) & (recordLast'=false) & (run'=true) +
1/4 : (lastSeen'=3) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=5 ->
1/5 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/5 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/5 : (lastSeen'=2) & (recordLast'=false) & (run'=true) +
1/5 : (lastSeen'=3) & (recordLast'=false) & (run'=true) +
1/5 : (lastSeen'=4) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=10 ->
1/10 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=2) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=3) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=4) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=5) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=6) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=7) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=8) & (recordLast'=false) & (run'=true) +
1/10 : (lastSeen'=9) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=15 ->
1/15 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=2) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=3) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=4) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=5) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=6) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=7) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=8) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=9) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=10) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=11) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=12) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=13) & (recordLast'=false) & (run'=true) +
1/15 : (lastSeen'=14) & (recordLast'=false) & (run'=true);
[] recordLast & CrowdSize=20 ->
1/20 : (lastSeen'=0) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=1) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=2) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=3) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=4) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=5) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=6) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=7) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=8) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=9) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=10) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=11) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=12) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=13) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=14) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=15) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=16) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=17) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=18) & (recordLast'=false) & (run'=true) +
1/20 : (lastSeen'=19) & (recordLast'=false) & (run'=true);
// BAD MEMBERS
// Remember from whom the message was received and deliver
// CWDMAX: 1 rule per each good crowd member
[] lastSeen=0 & badObserve & observe0 <TotalRuns -> (observe0' =observe0 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=1 & badObserve & observe1 <TotalRuns -> (observe1' =observe1 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=2 & badObserve & observe2 <TotalRuns -> (observe2' =observe2 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=3 & badObserve & observe3 <TotalRuns -> (observe3' =observe3 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=4 & badObserve & observe4 <TotalRuns -> (observe4' =observe4 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=5 & badObserve & observe5 <TotalRuns -> (observe5' =observe5 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=6 & badObserve & observe6 <TotalRuns -> (observe6' =observe6 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=7 & badObserve & observe7 <TotalRuns -> (observe7' =observe7 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=8 & badObserve & observe8 <TotalRuns -> (observe8' =observe8 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=9 & badObserve & observe9 <TotalRuns -> (observe9' =observe9 +1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=10 & badObserve & observe10<TotalRuns -> (observe10'=observe10+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=11 & badObserve & observe11<TotalRuns -> (observe11'=observe11+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=12 & badObserve & observe12<TotalRuns -> (observe12'=observe12+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=13 & badObserve & observe13<TotalRuns -> (observe13'=observe13+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=14 & badObserve & observe14<TotalRuns -> (observe14'=observe14+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=15 & badObserve & observe15<TotalRuns -> (observe15'=observe15+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=16 & badObserve & observe16<TotalRuns -> (observe16'=observe16+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=17 & badObserve & observe17<TotalRuns -> (observe17'=observe17+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=18 & badObserve & observe18<TotalRuns -> (observe18'=observe18+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
[] lastSeen=19 & badObserve & observe19<TotalRuns -> (observe19'=observe19+1) & (deliver'=true) & (run'=true) & (badObserve'=false);
// RECIPIENT
// Delivery to destination
[] deliver & run -> (done'=true) & (deliver'=false) & (run'=false) & (good'=false) & (bad'=false);
// Start a newInstance instance
[] done -> (newInstance'=true) & (done'=false) & (run'=false) & (lastSeen'=MaxGood);
endmodule
label "observe0Greater1" = observe0 > 1;
label "observeIGreater1" = observe1>1|observe2>1;
label "observeOnlyTrueSender" = observe0>1&observe1<=1 & observe2<=1;

1
examples/pdtmc/crowds/crowds.prctl

@ -0,0 +1 @@
P<=0.9 [F "observe0Greater1" ]

0
examples/pdtmc/crowds/crowds_10-5.pm → examples/pdtmc/crowds/crowds10_5.pm

0
examples/pdtmc/crowds/crowds_15-5.pm → examples/pdtmc/crowds/crowds15_5.pm

0
examples/pdtmc/crowds/crowds_20-5.pm → examples/pdtmc/crowds/crowds20_5.pm

0
examples/pdtmc/crowds/crowds_3-5.pm → examples/pdtmc/crowds/crowds3_5.pm

0
examples/pdtmc/crowds/crowds_5-5.pm → examples/pdtmc/crowds/crowds5_5.pm

625
examples/pdtmc/crowds/crowds_regions.txt

@ -0,0 +1,625 @@
0.000010<=PF<=0.040000, 0.000010<=badC<=0.040000;
0.000010<=PF<=0.040000, 0.040000<=badC<=0.080000;
0.000010<=PF<=0.040000, 0.080000<=badC<=0.120000;
0.000010<=PF<=0.040000, 0.120000<=badC<=0.160000;
0.000010<=PF<=0.040000, 0.160000<=badC<=0.200000;
0.000010<=PF<=0.040000, 0.200000<=badC<=0.240000;
0.000010<=PF<=0.040000, 0.240000<=badC<=0.280000;
0.000010<=PF<=0.040000, 0.280000<=badC<=0.320000;
0.000010<=PF<=0.040000, 0.320000<=badC<=0.360000;
0.000010<=PF<=0.040000, 0.360000<=badC<=0.400000;
0.000010<=PF<=0.040000, 0.400000<=badC<=0.440000;
0.000010<=PF<=0.040000, 0.440000<=badC<=0.480000;
0.000010<=PF<=0.040000, 0.480000<=badC<=0.520000;
0.000010<=PF<=0.040000, 0.520000<=badC<=0.560000;
0.000010<=PF<=0.040000, 0.560000<=badC<=0.600000;
0.000010<=PF<=0.040000, 0.600000<=badC<=0.640000;
0.000010<=PF<=0.040000, 0.640000<=badC<=0.680000;
0.000010<=PF<=0.040000, 0.680000<=badC<=0.720000;
0.000010<=PF<=0.040000, 0.720000<=badC<=0.760000;
0.000010<=PF<=0.040000, 0.760000<=badC<=0.800000;
0.000010<=PF<=0.040000, 0.800000<=badC<=0.840000;
0.000010<=PF<=0.040000, 0.840000<=badC<=0.880000;
0.000010<=PF<=0.040000, 0.880000<=badC<=0.920000;
0.000010<=PF<=0.040000, 0.920000<=badC<=0.960000;
0.000010<=PF<=0.040000, 0.960000<=badC<=0.999990;
0.040000<=PF<=0.080000, 0.000010<=badC<=0.040000;
0.040000<=PF<=0.080000, 0.040000<=badC<=0.080000;
0.040000<=PF<=0.080000, 0.080000<=badC<=0.120000;
0.040000<=PF<=0.080000, 0.120000<=badC<=0.160000;
0.040000<=PF<=0.080000, 0.160000<=badC<=0.200000;
0.040000<=PF<=0.080000, 0.200000<=badC<=0.240000;
0.040000<=PF<=0.080000, 0.240000<=badC<=0.280000;
0.040000<=PF<=0.080000, 0.280000<=badC<=0.320000;
0.040000<=PF<=0.080000, 0.320000<=badC<=0.360000;
0.040000<=PF<=0.080000, 0.360000<=badC<=0.400000;
0.040000<=PF<=0.080000, 0.400000<=badC<=0.440000;
0.040000<=PF<=0.080000, 0.440000<=badC<=0.480000;
0.040000<=PF<=0.080000, 0.480000<=badC<=0.520000;
0.040000<=PF<=0.080000, 0.520000<=badC<=0.560000;
0.040000<=PF<=0.080000, 0.560000<=badC<=0.600000;
0.040000<=PF<=0.080000, 0.600000<=badC<=0.640000;
0.040000<=PF<=0.080000, 0.640000<=badC<=0.680000;
0.040000<=PF<=0.080000, 0.680000<=badC<=0.720000;
0.040000<=PF<=0.080000, 0.720000<=badC<=0.760000;
0.040000<=PF<=0.080000, 0.760000<=badC<=0.800000;
0.040000<=PF<=0.080000, 0.800000<=badC<=0.840000;
0.040000<=PF<=0.080000, 0.840000<=badC<=0.880000;
0.040000<=PF<=0.080000, 0.880000<=badC<=0.920000;
0.040000<=PF<=0.080000, 0.920000<=badC<=0.960000;
0.040000<=PF<=0.080000, 0.960000<=badC<=0.999990;
0.080000<=PF<=0.120000, 0.000010<=badC<=0.040000;
0.080000<=PF<=0.120000, 0.040000<=badC<=0.080000;
0.080000<=PF<=0.120000, 0.080000<=badC<=0.120000;
0.080000<=PF<=0.120000, 0.120000<=badC<=0.160000;
0.080000<=PF<=0.120000, 0.160000<=badC<=0.200000;
0.080000<=PF<=0.120000, 0.200000<=badC<=0.240000;
0.080000<=PF<=0.120000, 0.240000<=badC<=0.280000;
0.080000<=PF<=0.120000, 0.280000<=badC<=0.320000;
0.080000<=PF<=0.120000, 0.320000<=badC<=0.360000;
0.080000<=PF<=0.120000, 0.360000<=badC<=0.400000;
0.080000<=PF<=0.120000, 0.400000<=badC<=0.440000;
0.080000<=PF<=0.120000, 0.440000<=badC<=0.480000;
0.080000<=PF<=0.120000, 0.480000<=badC<=0.520000;
0.080000<=PF<=0.120000, 0.520000<=badC<=0.560000;
0.080000<=PF<=0.120000, 0.560000<=badC<=0.600000;
0.080000<=PF<=0.120000, 0.600000<=badC<=0.640000;
0.080000<=PF<=0.120000, 0.640000<=badC<=0.680000;
0.080000<=PF<=0.120000, 0.680000<=badC<=0.720000;
0.080000<=PF<=0.120000, 0.720000<=badC<=0.760000;
0.080000<=PF<=0.120000, 0.760000<=badC<=0.800000;
0.080000<=PF<=0.120000, 0.800000<=badC<=0.840000;
0.080000<=PF<=0.120000, 0.840000<=badC<=0.880000;
0.080000<=PF<=0.120000, 0.880000<=badC<=0.920000;
0.080000<=PF<=0.120000, 0.920000<=badC<=0.960000;
0.080000<=PF<=0.120000, 0.960000<=badC<=0.999990;
0.120000<=PF<=0.160000, 0.000010<=badC<=0.040000;
0.120000<=PF<=0.160000, 0.040000<=badC<=0.080000;
0.120000<=PF<=0.160000, 0.080000<=badC<=0.120000;
0.120000<=PF<=0.160000, 0.120000<=badC<=0.160000;
0.120000<=PF<=0.160000, 0.160000<=badC<=0.200000;
0.120000<=PF<=0.160000, 0.200000<=badC<=0.240000;
0.120000<=PF<=0.160000, 0.240000<=badC<=0.280000;
0.120000<=PF<=0.160000, 0.280000<=badC<=0.320000;
0.120000<=PF<=0.160000, 0.320000<=badC<=0.360000;
0.120000<=PF<=0.160000, 0.360000<=badC<=0.400000;
0.120000<=PF<=0.160000, 0.400000<=badC<=0.440000;
0.120000<=PF<=0.160000, 0.440000<=badC<=0.480000;
0.120000<=PF<=0.160000, 0.480000<=badC<=0.520000;
0.120000<=PF<=0.160000, 0.520000<=badC<=0.560000;
0.120000<=PF<=0.160000, 0.560000<=badC<=0.600000;
0.120000<=PF<=0.160000, 0.600000<=badC<=0.640000;
0.120000<=PF<=0.160000, 0.640000<=badC<=0.680000;
0.120000<=PF<=0.160000, 0.680000<=badC<=0.720000;
0.120000<=PF<=0.160000, 0.720000<=badC<=0.760000;
0.120000<=PF<=0.160000, 0.760000<=badC<=0.800000;
0.120000<=PF<=0.160000, 0.800000<=badC<=0.840000;
0.120000<=PF<=0.160000, 0.840000<=badC<=0.880000;
0.120000<=PF<=0.160000, 0.880000<=badC<=0.920000;
0.120000<=PF<=0.160000, 0.920000<=badC<=0.960000;
0.120000<=PF<=0.160000, 0.960000<=badC<=0.999990;
0.160000<=PF<=0.200000, 0.000010<=badC<=0.040000;
0.160000<=PF<=0.200000, 0.040000<=badC<=0.080000;
0.160000<=PF<=0.200000, 0.080000<=badC<=0.120000;
0.160000<=PF<=0.200000, 0.120000<=badC<=0.160000;
0.160000<=PF<=0.200000, 0.160000<=badC<=0.200000;
0.160000<=PF<=0.200000, 0.200000<=badC<=0.240000;
0.160000<=PF<=0.200000, 0.240000<=badC<=0.280000;
0.160000<=PF<=0.200000, 0.280000<=badC<=0.320000;
0.160000<=PF<=0.200000, 0.320000<=badC<=0.360000;
0.160000<=PF<=0.200000, 0.360000<=badC<=0.400000;
0.160000<=PF<=0.200000, 0.400000<=badC<=0.440000;
0.160000<=PF<=0.200000, 0.440000<=badC<=0.480000;
0.160000<=PF<=0.200000, 0.480000<=badC<=0.520000;
0.160000<=PF<=0.200000, 0.520000<=badC<=0.560000;
0.160000<=PF<=0.200000, 0.560000<=badC<=0.600000;
0.160000<=PF<=0.200000, 0.600000<=badC<=0.640000;
0.160000<=PF<=0.200000, 0.640000<=badC<=0.680000;
0.160000<=PF<=0.200000, 0.680000<=badC<=0.720000;
0.160000<=PF<=0.200000, 0.720000<=badC<=0.760000;
0.160000<=PF<=0.200000, 0.760000<=badC<=0.800000;
0.160000<=PF<=0.200000, 0.800000<=badC<=0.840000;
0.160000<=PF<=0.200000, 0.840000<=badC<=0.880000;
0.160000<=PF<=0.200000, 0.880000<=badC<=0.920000;
0.160000<=PF<=0.200000, 0.920000<=badC<=0.960000;
0.160000<=PF<=0.200000, 0.960000<=badC<=0.999990;
0.200000<=PF<=0.240000, 0.000010<=badC<=0.040000;
0.200000<=PF<=0.240000, 0.040000<=badC<=0.080000;
0.200000<=PF<=0.240000, 0.080000<=badC<=0.120000;
0.200000<=PF<=0.240000, 0.120000<=badC<=0.160000;
0.200000<=PF<=0.240000, 0.160000<=badC<=0.200000;
0.200000<=PF<=0.240000, 0.200000<=badC<=0.240000;
0.200000<=PF<=0.240000, 0.240000<=badC<=0.280000;
0.200000<=PF<=0.240000, 0.280000<=badC<=0.320000;
0.200000<=PF<=0.240000, 0.320000<=badC<=0.360000;
0.200000<=PF<=0.240000, 0.360000<=badC<=0.400000;
0.200000<=PF<=0.240000, 0.400000<=badC<=0.440000;
0.200000<=PF<=0.240000, 0.440000<=badC<=0.480000;
0.200000<=PF<=0.240000, 0.480000<=badC<=0.520000;
0.200000<=PF<=0.240000, 0.520000<=badC<=0.560000;
0.200000<=PF<=0.240000, 0.560000<=badC<=0.600000;
0.200000<=PF<=0.240000, 0.600000<=badC<=0.640000;
0.200000<=PF<=0.240000, 0.640000<=badC<=0.680000;
0.200000<=PF<=0.240000, 0.680000<=badC<=0.720000;
0.200000<=PF<=0.240000, 0.720000<=badC<=0.760000;
0.200000<=PF<=0.240000, 0.760000<=badC<=0.800000;
0.200000<=PF<=0.240000, 0.800000<=badC<=0.840000;
0.200000<=PF<=0.240000, 0.840000<=badC<=0.880000;
0.200000<=PF<=0.240000, 0.880000<=badC<=0.920000;
0.200000<=PF<=0.240000, 0.920000<=badC<=0.960000;
0.200000<=PF<=0.240000, 0.960000<=badC<=0.999990;
0.240000<=PF<=0.280000, 0.000010<=badC<=0.040000;
0.240000<=PF<=0.280000, 0.040000<=badC<=0.080000;
0.240000<=PF<=0.280000, 0.080000<=badC<=0.120000;
0.240000<=PF<=0.280000, 0.120000<=badC<=0.160000;
0.240000<=PF<=0.280000, 0.160000<=badC<=0.200000;
0.240000<=PF<=0.280000, 0.200000<=badC<=0.240000;
0.240000<=PF<=0.280000, 0.240000<=badC<=0.280000;
0.240000<=PF<=0.280000, 0.280000<=badC<=0.320000;
0.240000<=PF<=0.280000, 0.320000<=badC<=0.360000;
0.240000<=PF<=0.280000, 0.360000<=badC<=0.400000;
0.240000<=PF<=0.280000, 0.400000<=badC<=0.440000;
0.240000<=PF<=0.280000, 0.440000<=badC<=0.480000;
0.240000<=PF<=0.280000, 0.480000<=badC<=0.520000;
0.240000<=PF<=0.280000, 0.520000<=badC<=0.560000;
0.240000<=PF<=0.280000, 0.560000<=badC<=0.600000;
0.240000<=PF<=0.280000, 0.600000<=badC<=0.640000;
0.240000<=PF<=0.280000, 0.640000<=badC<=0.680000;
0.240000<=PF<=0.280000, 0.680000<=badC<=0.720000;
0.240000<=PF<=0.280000, 0.720000<=badC<=0.760000;
0.240000<=PF<=0.280000, 0.760000<=badC<=0.800000;
0.240000<=PF<=0.280000, 0.800000<=badC<=0.840000;
0.240000<=PF<=0.280000, 0.840000<=badC<=0.880000;
0.240000<=PF<=0.280000, 0.880000<=badC<=0.920000;
0.240000<=PF<=0.280000, 0.920000<=badC<=0.960000;
0.240000<=PF<=0.280000, 0.960000<=badC<=0.999990;
0.280000<=PF<=0.320000, 0.000010<=badC<=0.040000;
0.280000<=PF<=0.320000, 0.040000<=badC<=0.080000;
0.280000<=PF<=0.320000, 0.080000<=badC<=0.120000;
0.280000<=PF<=0.320000, 0.120000<=badC<=0.160000;
0.280000<=PF<=0.320000, 0.160000<=badC<=0.200000;
0.280000<=PF<=0.320000, 0.200000<=badC<=0.240000;
0.280000<=PF<=0.320000, 0.240000<=badC<=0.280000;
0.280000<=PF<=0.320000, 0.280000<=badC<=0.320000;
0.280000<=PF<=0.320000, 0.320000<=badC<=0.360000;
0.280000<=PF<=0.320000, 0.360000<=badC<=0.400000;
0.280000<=PF<=0.320000, 0.400000<=badC<=0.440000;
0.280000<=PF<=0.320000, 0.440000<=badC<=0.480000;
0.280000<=PF<=0.320000, 0.480000<=badC<=0.520000;
0.280000<=PF<=0.320000, 0.520000<=badC<=0.560000;
0.280000<=PF<=0.320000, 0.560000<=badC<=0.600000;
0.280000<=PF<=0.320000, 0.600000<=badC<=0.640000;
0.280000<=PF<=0.320000, 0.640000<=badC<=0.680000;
0.280000<=PF<=0.320000, 0.680000<=badC<=0.720000;
0.280000<=PF<=0.320000, 0.720000<=badC<=0.760000;
0.280000<=PF<=0.320000, 0.760000<=badC<=0.800000;
0.280000<=PF<=0.320000, 0.800000<=badC<=0.840000;
0.280000<=PF<=0.320000, 0.840000<=badC<=0.880000;
0.280000<=PF<=0.320000, 0.880000<=badC<=0.920000;
0.280000<=PF<=0.320000, 0.920000<=badC<=0.960000;
0.280000<=PF<=0.320000, 0.960000<=badC<=0.999990;
0.320000<=PF<=0.360000, 0.000010<=badC<=0.040000;
0.320000<=PF<=0.360000, 0.040000<=badC<=0.080000;
0.320000<=PF<=0.360000, 0.080000<=badC<=0.120000;
0.320000<=PF<=0.360000, 0.120000<=badC<=0.160000;
0.320000<=PF<=0.360000, 0.160000<=badC<=0.200000;
0.320000<=PF<=0.360000, 0.200000<=badC<=0.240000;
0.320000<=PF<=0.360000, 0.240000<=badC<=0.280000;
0.320000<=PF<=0.360000, 0.280000<=badC<=0.320000;
0.320000<=PF<=0.360000, 0.320000<=badC<=0.360000;
0.320000<=PF<=0.360000, 0.360000<=badC<=0.400000;
0.320000<=PF<=0.360000, 0.400000<=badC<=0.440000;
0.320000<=PF<=0.360000, 0.440000<=badC<=0.480000;
0.320000<=PF<=0.360000, 0.480000<=badC<=0.520000;
0.320000<=PF<=0.360000, 0.520000<=badC<=0.560000;
0.320000<=PF<=0.360000, 0.560000<=badC<=0.600000;
0.320000<=PF<=0.360000, 0.600000<=badC<=0.640000;
0.320000<=PF<=0.360000, 0.640000<=badC<=0.680000;
0.320000<=PF<=0.360000, 0.680000<=badC<=0.720000;
0.320000<=PF<=0.360000, 0.720000<=badC<=0.760000;
0.320000<=PF<=0.360000, 0.760000<=badC<=0.800000;
0.320000<=PF<=0.360000, 0.800000<=badC<=0.840000;
0.320000<=PF<=0.360000, 0.840000<=badC<=0.880000;
0.320000<=PF<=0.360000, 0.880000<=badC<=0.920000;
0.320000<=PF<=0.360000, 0.920000<=badC<=0.960000;
0.320000<=PF<=0.360000, 0.960000<=badC<=0.999990;
0.360000<=PF<=0.400000, 0.000010<=badC<=0.040000;
0.360000<=PF<=0.400000, 0.040000<=badC<=0.080000;
0.360000<=PF<=0.400000, 0.080000<=badC<=0.120000;
0.360000<=PF<=0.400000, 0.120000<=badC<=0.160000;
0.360000<=PF<=0.400000, 0.160000<=badC<=0.200000;
0.360000<=PF<=0.400000, 0.200000<=badC<=0.240000;
0.360000<=PF<=0.400000, 0.240000<=badC<=0.280000;
0.360000<=PF<=0.400000, 0.280000<=badC<=0.320000;
0.360000<=PF<=0.400000, 0.320000<=badC<=0.360000;
0.360000<=PF<=0.400000, 0.360000<=badC<=0.400000;
0.360000<=PF<=0.400000, 0.400000<=badC<=0.440000;
0.360000<=PF<=0.400000, 0.440000<=badC<=0.480000;
0.360000<=PF<=0.400000, 0.480000<=badC<=0.520000;
0.360000<=PF<=0.400000, 0.520000<=badC<=0.560000;
0.360000<=PF<=0.400000, 0.560000<=badC<=0.600000;
0.360000<=PF<=0.400000, 0.600000<=badC<=0.640000;
0.360000<=PF<=0.400000, 0.640000<=badC<=0.680000;
0.360000<=PF<=0.400000, 0.680000<=badC<=0.720000;
0.360000<=PF<=0.400000, 0.720000<=badC<=0.760000;
0.360000<=PF<=0.400000, 0.760000<=badC<=0.800000;
0.360000<=PF<=0.400000, 0.800000<=badC<=0.840000;
0.360000<=PF<=0.400000, 0.840000<=badC<=0.880000;
0.360000<=PF<=0.400000, 0.880000<=badC<=0.920000;
0.360000<=PF<=0.400000, 0.920000<=badC<=0.960000;
0.360000<=PF<=0.400000, 0.960000<=badC<=0.999990;
0.400000<=PF<=0.440000, 0.000010<=badC<=0.040000;
0.400000<=PF<=0.440000, 0.040000<=badC<=0.080000;
0.400000<=PF<=0.440000, 0.080000<=badC<=0.120000;
0.400000<=PF<=0.440000, 0.120000<=badC<=0.160000;
0.400000<=PF<=0.440000, 0.160000<=badC<=0.200000;
0.400000<=PF<=0.440000, 0.200000<=badC<=0.240000;
0.400000<=PF<=0.440000, 0.240000<=badC<=0.280000;
0.400000<=PF<=0.440000, 0.280000<=badC<=0.320000;
0.400000<=PF<=0.440000, 0.320000<=badC<=0.360000;
0.400000<=PF<=0.440000, 0.360000<=badC<=0.400000;
0.400000<=PF<=0.440000, 0.400000<=badC<=0.440000;
0.400000<=PF<=0.440000, 0.440000<=badC<=0.480000;
0.400000<=PF<=0.440000, 0.480000<=badC<=0.520000;
0.400000<=PF<=0.440000, 0.520000<=badC<=0.560000;
0.400000<=PF<=0.440000, 0.560000<=badC<=0.600000;
0.400000<=PF<=0.440000, 0.600000<=badC<=0.640000;
0.400000<=PF<=0.440000, 0.640000<=badC<=0.680000;
0.400000<=PF<=0.440000, 0.680000<=badC<=0.720000;
0.400000<=PF<=0.440000, 0.720000<=badC<=0.760000;
0.400000<=PF<=0.440000, 0.760000<=badC<=0.800000;
0.400000<=PF<=0.440000, 0.800000<=badC<=0.840000;
0.400000<=PF<=0.440000, 0.840000<=badC<=0.880000;
0.400000<=PF<=0.440000, 0.880000<=badC<=0.920000;
0.400000<=PF<=0.440000, 0.920000<=badC<=0.960000;
0.400000<=PF<=0.440000, 0.960000<=badC<=0.999990;
0.440000<=PF<=0.480000, 0.000010<=badC<=0.040000;
0.440000<=PF<=0.480000, 0.040000<=badC<=0.080000;
0.440000<=PF<=0.480000, 0.080000<=badC<=0.120000;
0.440000<=PF<=0.480000, 0.120000<=badC<=0.160000;
0.440000<=PF<=0.480000, 0.160000<=badC<=0.200000;
0.440000<=PF<=0.480000, 0.200000<=badC<=0.240000;
0.440000<=PF<=0.480000, 0.240000<=badC<=0.280000;
0.440000<=PF<=0.480000, 0.280000<=badC<=0.320000;
0.440000<=PF<=0.480000, 0.320000<=badC<=0.360000;
0.440000<=PF<=0.480000, 0.360000<=badC<=0.400000;
0.440000<=PF<=0.480000, 0.400000<=badC<=0.440000;
0.440000<=PF<=0.480000, 0.440000<=badC<=0.480000;
0.440000<=PF<=0.480000, 0.480000<=badC<=0.520000;
0.440000<=PF<=0.480000, 0.520000<=badC<=0.560000;
0.440000<=PF<=0.480000, 0.560000<=badC<=0.600000;
0.440000<=PF<=0.480000, 0.600000<=badC<=0.640000;
0.440000<=PF<=0.480000, 0.640000<=badC<=0.680000;
0.440000<=PF<=0.480000, 0.680000<=badC<=0.720000;
0.440000<=PF<=0.480000, 0.720000<=badC<=0.760000;
0.440000<=PF<=0.480000, 0.760000<=badC<=0.800000;
0.440000<=PF<=0.480000, 0.800000<=badC<=0.840000;
0.440000<=PF<=0.480000, 0.840000<=badC<=0.880000;
0.440000<=PF<=0.480000, 0.880000<=badC<=0.920000;
0.440000<=PF<=0.480000, 0.920000<=badC<=0.960000;
0.440000<=PF<=0.480000, 0.960000<=badC<=0.999990;
0.480000<=PF<=0.520000, 0.000010<=badC<=0.040000;
0.480000<=PF<=0.520000, 0.040000<=badC<=0.080000;
0.480000<=PF<=0.520000, 0.080000<=badC<=0.120000;
0.480000<=PF<=0.520000, 0.120000<=badC<=0.160000;
0.480000<=PF<=0.520000, 0.160000<=badC<=0.200000;
0.480000<=PF<=0.520000, 0.200000<=badC<=0.240000;
0.480000<=PF<=0.520000, 0.240000<=badC<=0.280000;
0.480000<=PF<=0.520000, 0.280000<=badC<=0.320000;
0.480000<=PF<=0.520000, 0.320000<=badC<=0.360000;
0.480000<=PF<=0.520000, 0.360000<=badC<=0.400000;
0.480000<=PF<=0.520000, 0.400000<=badC<=0.440000;
0.480000<=PF<=0.520000, 0.440000<=badC<=0.480000;
0.480000<=PF<=0.520000, 0.480000<=badC<=0.520000;
0.480000<=PF<=0.520000, 0.520000<=badC<=0.560000;
0.480000<=PF<=0.520000, 0.560000<=badC<=0.600000;
0.480000<=PF<=0.520000, 0.600000<=badC<=0.640000;
0.480000<=PF<=0.520000, 0.640000<=badC<=0.680000;
0.480000<=PF<=0.520000, 0.680000<=badC<=0.720000;
0.480000<=PF<=0.520000, 0.720000<=badC<=0.760000;
0.480000<=PF<=0.520000, 0.760000<=badC<=0.800000;
0.480000<=PF<=0.520000, 0.800000<=badC<=0.840000;
0.480000<=PF<=0.520000, 0.840000<=badC<=0.880000;
0.480000<=PF<=0.520000, 0.880000<=badC<=0.920000;
0.480000<=PF<=0.520000, 0.920000<=badC<=0.960000;
0.480000<=PF<=0.520000, 0.960000<=badC<=0.999990;
0.520000<=PF<=0.560000, 0.000010<=badC<=0.040000;
0.520000<=PF<=0.560000, 0.040000<=badC<=0.080000;
0.520000<=PF<=0.560000, 0.080000<=badC<=0.120000;
0.520000<=PF<=0.560000, 0.120000<=badC<=0.160000;
0.520000<=PF<=0.560000, 0.160000<=badC<=0.200000;
0.520000<=PF<=0.560000, 0.200000<=badC<=0.240000;
0.520000<=PF<=0.560000, 0.240000<=badC<=0.280000;
0.520000<=PF<=0.560000, 0.280000<=badC<=0.320000;
0.520000<=PF<=0.560000, 0.320000<=badC<=0.360000;
0.520000<=PF<=0.560000, 0.360000<=badC<=0.400000;
0.520000<=PF<=0.560000, 0.400000<=badC<=0.440000;
0.520000<=PF<=0.560000, 0.440000<=badC<=0.480000;
0.520000<=PF<=0.560000, 0.480000<=badC<=0.520000;
0.520000<=PF<=0.560000, 0.520000<=badC<=0.560000;
0.520000<=PF<=0.560000, 0.560000<=badC<=0.600000;
0.520000<=PF<=0.560000, 0.600000<=badC<=0.640000;
0.520000<=PF<=0.560000, 0.640000<=badC<=0.680000;
0.520000<=PF<=0.560000, 0.680000<=badC<=0.720000;
0.520000<=PF<=0.560000, 0.720000<=badC<=0.760000;
0.520000<=PF<=0.560000, 0.760000<=badC<=0.800000;
0.520000<=PF<=0.560000, 0.800000<=badC<=0.840000;
0.520000<=PF<=0.560000, 0.840000<=badC<=0.880000;
0.520000<=PF<=0.560000, 0.880000<=badC<=0.920000;
0.520000<=PF<=0.560000, 0.920000<=badC<=0.960000;
0.520000<=PF<=0.560000, 0.960000<=badC<=0.999990;
0.560000<=PF<=0.600000, 0.000010<=badC<=0.040000;
0.560000<=PF<=0.600000, 0.040000<=badC<=0.080000;
0.560000<=PF<=0.600000, 0.080000<=badC<=0.120000;
0.560000<=PF<=0.600000, 0.120000<=badC<=0.160000;
0.560000<=PF<=0.600000, 0.160000<=badC<=0.200000;
0.560000<=PF<=0.600000, 0.200000<=badC<=0.240000;
0.560000<=PF<=0.600000, 0.240000<=badC<=0.280000;
0.560000<=PF<=0.600000, 0.280000<=badC<=0.320000;
0.560000<=PF<=0.600000, 0.320000<=badC<=0.360000;
0.560000<=PF<=0.600000, 0.360000<=badC<=0.400000;
0.560000<=PF<=0.600000, 0.400000<=badC<=0.440000;
0.560000<=PF<=0.600000, 0.440000<=badC<=0.480000;
0.560000<=PF<=0.600000, 0.480000<=badC<=0.520000;
0.560000<=PF<=0.600000, 0.520000<=badC<=0.560000;
0.560000<=PF<=0.600000, 0.560000<=badC<=0.600000;
0.560000<=PF<=0.600000, 0.600000<=badC<=0.640000;
0.560000<=PF<=0.600000, 0.640000<=badC<=0.680000;
0.560000<=PF<=0.600000, 0.680000<=badC<=0.720000;
0.560000<=PF<=0.600000, 0.720000<=badC<=0.760000;
0.560000<=PF<=0.600000, 0.760000<=badC<=0.800000;
0.560000<=PF<=0.600000, 0.800000<=badC<=0.840000;
0.560000<=PF<=0.600000, 0.840000<=badC<=0.880000;
0.560000<=PF<=0.600000, 0.880000<=badC<=0.920000;
0.560000<=PF<=0.600000, 0.920000<=badC<=0.960000;
0.560000<=PF<=0.600000, 0.960000<=badC<=0.999990;
0.600000<=PF<=0.640000, 0.000010<=badC<=0.040000;
0.600000<=PF<=0.640000, 0.040000<=badC<=0.080000;
0.600000<=PF<=0.640000, 0.080000<=badC<=0.120000;
0.600000<=PF<=0.640000, 0.120000<=badC<=0.160000;
0.600000<=PF<=0.640000, 0.160000<=badC<=0.200000;
0.600000<=PF<=0.640000, 0.200000<=badC<=0.240000;
0.600000<=PF<=0.640000, 0.240000<=badC<=0.280000;
0.600000<=PF<=0.640000, 0.280000<=badC<=0.320000;
0.600000<=PF<=0.640000, 0.320000<=badC<=0.360000;
0.600000<=PF<=0.640000, 0.360000<=badC<=0.400000;
0.600000<=PF<=0.640000, 0.400000<=badC<=0.440000;
0.600000<=PF<=0.640000, 0.440000<=badC<=0.480000;
0.600000<=PF<=0.640000, 0.480000<=badC<=0.520000;
0.600000<=PF<=0.640000, 0.520000<=badC<=0.560000;
0.600000<=PF<=0.640000, 0.560000<=badC<=0.600000;
0.600000<=PF<=0.640000, 0.600000<=badC<=0.640000;
0.600000<=PF<=0.640000, 0.640000<=badC<=0.680000;
0.600000<=PF<=0.640000, 0.680000<=badC<=0.720000;
0.600000<=PF<=0.640000, 0.720000<=badC<=0.760000;
0.600000<=PF<=0.640000, 0.760000<=badC<=0.800000;
0.600000<=PF<=0.640000, 0.800000<=badC<=0.840000;
0.600000<=PF<=0.640000, 0.840000<=badC<=0.880000;
0.600000<=PF<=0.640000, 0.880000<=badC<=0.920000;
0.600000<=PF<=0.640000, 0.920000<=badC<=0.960000;
0.600000<=PF<=0.640000, 0.960000<=badC<=0.999990;
0.640000<=PF<=0.680000, 0.000010<=badC<=0.040000;
0.640000<=PF<=0.680000, 0.040000<=badC<=0.080000;
0.640000<=PF<=0.680000, 0.080000<=badC<=0.120000;
0.640000<=PF<=0.680000, 0.120000<=badC<=0.160000;
0.640000<=PF<=0.680000, 0.160000<=badC<=0.200000;
0.640000<=PF<=0.680000, 0.200000<=badC<=0.240000;
0.640000<=PF<=0.680000, 0.240000<=badC<=0.280000;
0.640000<=PF<=0.680000, 0.280000<=badC<=0.320000;
0.640000<=PF<=0.680000, 0.320000<=badC<=0.360000;
0.640000<=PF<=0.680000, 0.360000<=badC<=0.400000;
0.640000<=PF<=0.680000, 0.400000<=badC<=0.440000;
0.640000<=PF<=0.680000, 0.440000<=badC<=0.480000;
0.640000<=PF<=0.680000, 0.480000<=badC<=0.520000;
0.640000<=PF<=0.680000, 0.520000<=badC<=0.560000;
0.640000<=PF<=0.680000, 0.560000<=badC<=0.600000;
0.640000<=PF<=0.680000, 0.600000<=badC<=0.640000;
0.640000<=PF<=0.680000, 0.640000<=badC<=0.680000;
0.640000<=PF<=0.680000, 0.680000<=badC<=0.720000;
0.640000<=PF<=0.680000, 0.720000<=badC<=0.760000;
0.640000<=PF<=0.680000, 0.760000<=badC<=0.800000;
0.640000<=PF<=0.680000, 0.800000<=badC<=0.840000;
0.640000<=PF<=0.680000, 0.840000<=badC<=0.880000;
0.640000<=PF<=0.680000, 0.880000<=badC<=0.920000;
0.640000<=PF<=0.680000, 0.920000<=badC<=0.960000;
0.640000<=PF<=0.680000, 0.960000<=badC<=0.999990;
0.680000<=PF<=0.720000, 0.000010<=badC<=0.040000;
0.680000<=PF<=0.720000, 0.040000<=badC<=0.080000;
0.680000<=PF<=0.720000, 0.080000<=badC<=0.120000;
0.680000<=PF<=0.720000, 0.120000<=badC<=0.160000;
0.680000<=PF<=0.720000, 0.160000<=badC<=0.200000;
0.680000<=PF<=0.720000, 0.200000<=badC<=0.240000;
0.680000<=PF<=0.720000, 0.240000<=badC<=0.280000;
0.680000<=PF<=0.720000, 0.280000<=badC<=0.320000;
0.680000<=PF<=0.720000, 0.320000<=badC<=0.360000;
0.680000<=PF<=0.720000, 0.360000<=badC<=0.400000;
0.680000<=PF<=0.720000, 0.400000<=badC<=0.440000;
0.680000<=PF<=0.720000, 0.440000<=badC<=0.480000;
0.680000<=PF<=0.720000, 0.480000<=badC<=0.520000;
0.680000<=PF<=0.720000, 0.520000<=badC<=0.560000;
0.680000<=PF<=0.720000, 0.560000<=badC<=0.600000;
0.680000<=PF<=0.720000, 0.600000<=badC<=0.640000;
0.680000<=PF<=0.720000, 0.640000<=badC<=0.680000;
0.680000<=PF<=0.720000, 0.680000<=badC<=0.720000;
0.680000<=PF<=0.720000, 0.720000<=badC<=0.760000;
0.680000<=PF<=0.720000, 0.760000<=badC<=0.800000;
0.680000<=PF<=0.720000, 0.800000<=badC<=0.840000;
0.680000<=PF<=0.720000, 0.840000<=badC<=0.880000;
0.680000<=PF<=0.720000, 0.880000<=badC<=0.920000;
0.680000<=PF<=0.720000, 0.920000<=badC<=0.960000;
0.680000<=PF<=0.720000, 0.960000<=badC<=0.999990;
0.720000<=PF<=0.760000, 0.000010<=badC<=0.040000;
0.720000<=PF<=0.760000, 0.040000<=badC<=0.080000;
0.720000<=PF<=0.760000, 0.080000<=badC<=0.120000;
0.720000<=PF<=0.760000, 0.120000<=badC<=0.160000;
0.720000<=PF<=0.760000, 0.160000<=badC<=0.200000;
0.720000<=PF<=0.760000, 0.200000<=badC<=0.240000;
0.720000<=PF<=0.760000, 0.240000<=badC<=0.280000;
0.720000<=PF<=0.760000, 0.280000<=badC<=0.320000;
0.720000<=PF<=0.760000, 0.320000<=badC<=0.360000;
0.720000<=PF<=0.760000, 0.360000<=badC<=0.400000;
0.720000<=PF<=0.760000, 0.400000<=badC<=0.440000;
0.720000<=PF<=0.760000, 0.440000<=badC<=0.480000;
0.720000<=PF<=0.760000, 0.480000<=badC<=0.520000;
0.720000<=PF<=0.760000, 0.520000<=badC<=0.560000;
0.720000<=PF<=0.760000, 0.560000<=badC<=0.600000;
0.720000<=PF<=0.760000, 0.600000<=badC<=0.640000;
0.720000<=PF<=0.760000, 0.640000<=badC<=0.680000;
0.720000<=PF<=0.760000, 0.680000<=badC<=0.720000;
0.720000<=PF<=0.760000, 0.720000<=badC<=0.760000;
0.720000<=PF<=0.760000, 0.760000<=badC<=0.800000;
0.720000<=PF<=0.760000, 0.800000<=badC<=0.840000;
0.720000<=PF<=0.760000, 0.840000<=badC<=0.880000;
0.720000<=PF<=0.760000, 0.880000<=badC<=0.920000;
0.720000<=PF<=0.760000, 0.920000<=badC<=0.960000;
0.720000<=PF<=0.760000, 0.960000<=badC<=0.999990;
0.760000<=PF<=0.800000, 0.000010<=badC<=0.040000;
0.760000<=PF<=0.800000, 0.040000<=badC<=0.080000;
0.760000<=PF<=0.800000, 0.080000<=badC<=0.120000;
0.760000<=PF<=0.800000, 0.120000<=badC<=0.160000;
0.760000<=PF<=0.800000, 0.160000<=badC<=0.200000;
0.760000<=PF<=0.800000, 0.200000<=badC<=0.240000;
0.760000<=PF<=0.800000, 0.240000<=badC<=0.280000;
0.760000<=PF<=0.800000, 0.280000<=badC<=0.320000;
0.760000<=PF<=0.800000, 0.320000<=badC<=0.360000;
0.760000<=PF<=0.800000, 0.360000<=badC<=0.400000;
0.760000<=PF<=0.800000, 0.400000<=badC<=0.440000;
0.760000<=PF<=0.800000, 0.440000<=badC<=0.480000;
0.760000<=PF<=0.800000, 0.480000<=badC<=0.520000;
0.760000<=PF<=0.800000, 0.520000<=badC<=0.560000;
0.760000<=PF<=0.800000, 0.560000<=badC<=0.600000;
0.760000<=PF<=0.800000, 0.600000<=badC<=0.640000;
0.760000<=PF<=0.800000, 0.640000<=badC<=0.680000;
0.760000<=PF<=0.800000, 0.680000<=badC<=0.720000;
0.760000<=PF<=0.800000, 0.720000<=badC<=0.760000;
0.760000<=PF<=0.800000, 0.760000<=badC<=0.800000;
0.760000<=PF<=0.800000, 0.800000<=badC<=0.840000;
0.760000<=PF<=0.800000, 0.840000<=badC<=0.880000;
0.760000<=PF<=0.800000, 0.880000<=badC<=0.920000;
0.760000<=PF<=0.800000, 0.920000<=badC<=0.960000;
0.760000<=PF<=0.800000, 0.960000<=badC<=0.999990;
0.800000<=PF<=0.840000, 0.000010<=badC<=0.040000;
0.800000<=PF<=0.840000, 0.040000<=badC<=0.080000;
0.800000<=PF<=0.840000, 0.080000<=badC<=0.120000;
0.800000<=PF<=0.840000, 0.120000<=badC<=0.160000;
0.800000<=PF<=0.840000, 0.160000<=badC<=0.200000;
0.800000<=PF<=0.840000, 0.200000<=badC<=0.240000;
0.800000<=PF<=0.840000, 0.240000<=badC<=0.280000;
0.800000<=PF<=0.840000, 0.280000<=badC<=0.320000;
0.800000<=PF<=0.840000, 0.320000<=badC<=0.360000;
0.800000<=PF<=0.840000, 0.360000<=badC<=0.400000;
0.800000<=PF<=0.840000, 0.400000<=badC<=0.440000;
0.800000<=PF<=0.840000, 0.440000<=badC<=0.480000;
0.800000<=PF<=0.840000, 0.480000<=badC<=0.520000;
0.800000<=PF<=0.840000, 0.520000<=badC<=0.560000;
0.800000<=PF<=0.840000, 0.560000<=badC<=0.600000;
0.800000<=PF<=0.840000, 0.600000<=badC<=0.640000;
0.800000<=PF<=0.840000, 0.640000<=badC<=0.680000;
0.800000<=PF<=0.840000, 0.680000<=badC<=0.720000;
0.800000<=PF<=0.840000, 0.720000<=badC<=0.760000;
0.800000<=PF<=0.840000, 0.760000<=badC<=0.800000;
0.800000<=PF<=0.840000, 0.800000<=badC<=0.840000;
0.800000<=PF<=0.840000, 0.840000<=badC<=0.880000;
0.800000<=PF<=0.840000, 0.880000<=badC<=0.920000;
0.800000<=PF<=0.840000, 0.920000<=badC<=0.960000;
0.800000<=PF<=0.840000, 0.960000<=badC<=0.999990;
0.840000<=PF<=0.880000, 0.000010<=badC<=0.040000;
0.840000<=PF<=0.880000, 0.040000<=badC<=0.080000;
0.840000<=PF<=0.880000, 0.080000<=badC<=0.120000;
0.840000<=PF<=0.880000, 0.120000<=badC<=0.160000;
0.840000<=PF<=0.880000, 0.160000<=badC<=0.200000;
0.840000<=PF<=0.880000, 0.200000<=badC<=0.240000;
0.840000<=PF<=0.880000, 0.240000<=badC<=0.280000;
0.840000<=PF<=0.880000, 0.280000<=badC<=0.320000;
0.840000<=PF<=0.880000, 0.320000<=badC<=0.360000;
0.840000<=PF<=0.880000, 0.360000<=badC<=0.400000;
0.840000<=PF<=0.880000, 0.400000<=badC<=0.440000;
0.840000<=PF<=0.880000, 0.440000<=badC<=0.480000;
0.840000<=PF<=0.880000, 0.480000<=badC<=0.520000;
0.840000<=PF<=0.880000, 0.520000<=badC<=0.560000;
0.840000<=PF<=0.880000, 0.560000<=badC<=0.600000;
0.840000<=PF<=0.880000, 0.600000<=badC<=0.640000;
0.840000<=PF<=0.880000, 0.640000<=badC<=0.680000;
0.840000<=PF<=0.880000, 0.680000<=badC<=0.720000;
0.840000<=PF<=0.880000, 0.720000<=badC<=0.760000;
0.840000<=PF<=0.880000, 0.760000<=badC<=0.800000;
0.840000<=PF<=0.880000, 0.800000<=badC<=0.840000;
0.840000<=PF<=0.880000, 0.840000<=badC<=0.880000;
0.840000<=PF<=0.880000, 0.880000<=badC<=0.920000;
0.840000<=PF<=0.880000, 0.920000<=badC<=0.960000;
0.840000<=PF<=0.880000, 0.960000<=badC<=0.999990;
0.880000<=PF<=0.920000, 0.000010<=badC<=0.040000;
0.880000<=PF<=0.920000, 0.040000<=badC<=0.080000;
0.880000<=PF<=0.920000, 0.080000<=badC<=0.120000;
0.880000<=PF<=0.920000, 0.120000<=badC<=0.160000;
0.880000<=PF<=0.920000, 0.160000<=badC<=0.200000;
0.880000<=PF<=0.920000, 0.200000<=badC<=0.240000;
0.880000<=PF<=0.920000, 0.240000<=badC<=0.280000;
0.880000<=PF<=0.920000, 0.280000<=badC<=0.320000;
0.880000<=PF<=0.920000, 0.320000<=badC<=0.360000;
0.880000<=PF<=0.920000, 0.360000<=badC<=0.400000;
0.880000<=PF<=0.920000, 0.400000<=badC<=0.440000;
0.880000<=PF<=0.920000, 0.440000<=badC<=0.480000;
0.880000<=PF<=0.920000, 0.480000<=badC<=0.520000;
0.880000<=PF<=0.920000, 0.520000<=badC<=0.560000;
0.880000<=PF<=0.920000, 0.560000<=badC<=0.600000;
0.880000<=PF<=0.920000, 0.600000<=badC<=0.640000;
0.880000<=PF<=0.920000, 0.640000<=badC<=0.680000;
0.880000<=PF<=0.920000, 0.680000<=badC<=0.720000;
0.880000<=PF<=0.920000, 0.720000<=badC<=0.760000;
0.880000<=PF<=0.920000, 0.760000<=badC<=0.800000;
0.880000<=PF<=0.920000, 0.800000<=badC<=0.840000;
0.880000<=PF<=0.920000, 0.840000<=badC<=0.880000;
0.880000<=PF<=0.920000, 0.880000<=badC<=0.920000;
0.880000<=PF<=0.920000, 0.920000<=badC<=0.960000;
0.880000<=PF<=0.920000, 0.960000<=badC<=0.999990;
0.920000<=PF<=0.960000, 0.000010<=badC<=0.040000;
0.920000<=PF<=0.960000, 0.040000<=badC<=0.080000;
0.920000<=PF<=0.960000, 0.080000<=badC<=0.120000;
0.920000<=PF<=0.960000, 0.120000<=badC<=0.160000;
0.920000<=PF<=0.960000, 0.160000<=badC<=0.200000;
0.920000<=PF<=0.960000, 0.200000<=badC<=0.240000;
0.920000<=PF<=0.960000, 0.240000<=badC<=0.280000;
0.920000<=PF<=0.960000, 0.280000<=badC<=0.320000;
0.920000<=PF<=0.960000, 0.320000<=badC<=0.360000;
0.920000<=PF<=0.960000, 0.360000<=badC<=0.400000;
0.920000<=PF<=0.960000, 0.400000<=badC<=0.440000;
0.920000<=PF<=0.960000, 0.440000<=badC<=0.480000;
0.920000<=PF<=0.960000, 0.480000<=badC<=0.520000;
0.920000<=PF<=0.960000, 0.520000<=badC<=0.560000;
0.920000<=PF<=0.960000, 0.560000<=badC<=0.600000;
0.920000<=PF<=0.960000, 0.600000<=badC<=0.640000;
0.920000<=PF<=0.960000, 0.640000<=badC<=0.680000;
0.920000<=PF<=0.960000, 0.680000<=badC<=0.720000;
0.920000<=PF<=0.960000, 0.720000<=badC<=0.760000;
0.920000<=PF<=0.960000, 0.760000<=badC<=0.800000;
0.920000<=PF<=0.960000, 0.800000<=badC<=0.840000;
0.920000<=PF<=0.960000, 0.840000<=badC<=0.880000;
0.920000<=PF<=0.960000, 0.880000<=badC<=0.920000;
0.920000<=PF<=0.960000, 0.920000<=badC<=0.960000;
0.920000<=PF<=0.960000, 0.960000<=badC<=0.999990;
0.960000<=PF<=0.999990, 0.000010<=badC<=0.040000;
0.960000<=PF<=0.999990, 0.040000<=badC<=0.080000;
0.960000<=PF<=0.999990, 0.080000<=badC<=0.120000;
0.960000<=PF<=0.999990, 0.120000<=badC<=0.160000;
0.960000<=PF<=0.999990, 0.160000<=badC<=0.200000;
0.960000<=PF<=0.999990, 0.200000<=badC<=0.240000;
0.960000<=PF<=0.999990, 0.240000<=badC<=0.280000;
0.960000<=PF<=0.999990, 0.280000<=badC<=0.320000;
0.960000<=PF<=0.999990, 0.320000<=badC<=0.360000;
0.960000<=PF<=0.999990, 0.360000<=badC<=0.400000;
0.960000<=PF<=0.999990, 0.400000<=badC<=0.440000;
0.960000<=PF<=0.999990, 0.440000<=badC<=0.480000;
0.960000<=PF<=0.999990, 0.480000<=badC<=0.520000;
0.960000<=PF<=0.999990, 0.520000<=badC<=0.560000;
0.960000<=PF<=0.999990, 0.560000<=badC<=0.600000;
0.960000<=PF<=0.999990, 0.600000<=badC<=0.640000;
0.960000<=PF<=0.999990, 0.640000<=badC<=0.680000;
0.960000<=PF<=0.999990, 0.680000<=badC<=0.720000;
0.960000<=PF<=0.999990, 0.720000<=badC<=0.760000;
0.960000<=PF<=0.999990, 0.760000<=badC<=0.800000;
0.960000<=PF<=0.999990, 0.800000<=badC<=0.840000;
0.960000<=PF<=0.999990, 0.840000<=badC<=0.880000;
0.960000<=PF<=0.999990, 0.880000<=badC<=0.920000;
0.960000<=PF<=0.999990, 0.920000<=badC<=0.960000;
0.960000<=PF<=0.999990, 0.960000<=badC<=0.999990;

2
examples/pdtmc/crowds/crowds_space.txt

@ -0,0 +1,2 @@
0.000010<=PF<=0.999990, 0.000010<=badC<=0.999990;

2
examples/pdtmc/crowds/models

@ -0,0 +1,2 @@
crowds.pm -const CrowdSize=10,TotalRuns=5
crowds.pm -const CrowdSize=20,TotalRuns=10

2
examples/pdtmc/nand/models

@ -0,0 +1,2 @@
nand.pm -const N=10,K=5
nand.pm -const N=25,K=5

75
examples/pdtmc/nand/nand.pm

@ -0,0 +1,75 @@
// nand multiplex system
// gxn/dxp 20/03/03
// U (correctly) performs a random permutation of the outputs of the previous stage
dtmc
const int N; // number of inputs in each bundle
const int K; // number of restorative stages
const int M = 2*K+1; // total number of multiplexing units
// parameters taken from the following paper
// A system architecture solution for unreliable nanoelectric devices
// J. Han & P. Jonker
// IEEEE trans. on nanotechnology vol 1(4) 2002
const double perr; //(0.02) probability nand works correctly
const double prob1; //(0.9) probability initial inputs are stimulated
// model whole system as a single module by resuing variables
// to decrease the state space
module multiplex
u : [1..M]; // number of stages
c : [0..N]; // counter (number of copies of the nand done)
s : [0..4]; // local state
// 0 - initial state
// 1 - set x inputs
// 2 - set y inputs
// 3 - set outputs
// 4 - done
z : [0..N]; // number of new outputs equal to 1
zx : [0..N]; // number of old outputs equal to 1
zy : [0..N]; // need second copy for y
// initially 9 since initially probability of stimulated state is 0.9
x : [0..1]; // value of first input
y : [0..1]; // value of second input
[] s=0 & (c<N) -> (s'=1); // do next nand if have not done N yet
[] s=0 & (c=N) & (u<M) -> (s'=1) & (zx'=z) & (zy'=z) & (z'=0) & (u'=u+1) & (c'=0); // move on to next u if not finished
[] s=0 & (c=N) & (u=M) -> (s'=4) & (zx'=0) & (zy'=0) & (x'=0) & (y'=0); // finished (so reset variables not needed to reduce state space)
// choose x permute selection (have zx stimulated inputs)
// note only need y to be random
[] s=1 & u=1 -> prob1 : (x'=1) & (s'=2) + (1-prob1) : (x'=0) & (s'=2); // initially random
[] s=1 & u>1 & zx>0 -> (x'=1) & (s'=2) & (zx'=zx-1);
[] s=1 & u>1 & zx=0 -> (x'=0) & (s'=2);
// choose x randomly from selection (have zy stimulated inputs)
[] s=2 & u=1 -> prob1 : (y'=1) & (s'=3) + (1-prob1) : (y'=0) & (s'=3); // initially random
[] s=2 & u>1 & zy<(N-c) & zy>0 -> zy/(N-c) : (y'=1) & (s'=3) & (zy'=zy-1) + 1-(zy/(N-c)) : (y'=0) & (s'=3);
[] s=2 & u>1 & zy=(N-c) & c<N -> 1 : (y'=1) & (s'=3) & (zy'=zy-1);
[] s=2 & u>1 & zy=0 -> 1 : (y'=0) & (s'=3);
// use nand gate
[] s=3 & z<N & c<N -> (1-perr) : (z'=z+(1-x*y)) & (s'=0) & (c'=c+1) & (x'=0) & (y'=0) // not faulty
+ perr : (z'=z+(x*y)) & (s'=0) & (c'=c+1) & (x'=0) & (y'=0); // von neumann fault
// [] s=3 & z<N -> (1-perr) : (z'=z+(1-x*y)) & (s'=0) & (c'=c+1) & (x'=0) & (y'=0) // not faulty
// + perr : (z'=z+(x*y)) & (s'=0) & (c'=c+1) & (x'=0) & (y'=0); // von neumann fault
[] s=4 -> (s'=s);
endmodule
label "target" = s=4 & z/N<0.1;
// rewards: final value of gate
rewards
[] s=0 & (c=N) & (u=M) : z/N;
endrewards

1
examples/pdtmc/nand/nand.prctl

@ -0,0 +1 @@
P>0.05 [F "target" ]

0
examples/pdtmc/nand/nand_10-1.pm → examples/pdtmc/nand/nand10_1.pm

0
examples/pdtmc/nand/nand_10-2.pm → examples/pdtmc/nand/nand10_2.pm

0
examples/pdtmc/nand/nand_10-3.pm → examples/pdtmc/nand/nand10_3.pm

0
examples/pdtmc/nand/nand_10-4.pm → examples/pdtmc/nand/nand10_4.pm

0
examples/pdtmc/nand/nand_10-5.pm → examples/pdtmc/nand/nand10_5.pm

0
examples/pdtmc/nand/nand_20-1.pm → examples/pdtmc/nand/nand20_1.pm

0
examples/pdtmc/nand/nand_20-2.pm → examples/pdtmc/nand/nand20_2.pm

0
examples/pdtmc/nand/nand_20-3.pm → examples/pdtmc/nand/nand20_3.pm

0
examples/pdtmc/nand/nand_20-4.pm → examples/pdtmc/nand/nand20_4.pm

0
examples/pdtmc/nand/nand_20-5.pm → examples/pdtmc/nand/nand20_5.pm

625
examples/pdtmc/nand/nand_regions.txt

@ -0,0 +1,625 @@
0.000010<=perr<=0.040000, 0.000010<=prob1<=0.040000;
0.000010<=perr<=0.040000, 0.040000<=prob1<=0.080000;
0.000010<=perr<=0.040000, 0.080000<=prob1<=0.120000;
0.000010<=perr<=0.040000, 0.120000<=prob1<=0.160000;
0.000010<=perr<=0.040000, 0.160000<=prob1<=0.200000;
0.000010<=perr<=0.040000, 0.200000<=prob1<=0.240000;
0.000010<=perr<=0.040000, 0.240000<=prob1<=0.280000;
0.000010<=perr<=0.040000, 0.280000<=prob1<=0.320000;
0.000010<=perr<=0.040000, 0.320000<=prob1<=0.360000;
0.000010<=perr<=0.040000, 0.360000<=prob1<=0.400000;
0.000010<=perr<=0.040000, 0.400000<=prob1<=0.440000;
0.000010<=perr<=0.040000, 0.440000<=prob1<=0.480000;
0.000010<=perr<=0.040000, 0.480000<=prob1<=0.520000;
0.000010<=perr<=0.040000, 0.520000<=prob1<=0.560000;
0.000010<=perr<=0.040000, 0.560000<=prob1<=0.600000;
0.000010<=perr<=0.040000, 0.600000<=prob1<=0.640000;
0.000010<=perr<=0.040000, 0.640000<=prob1<=0.680000;
0.000010<=perr<=0.040000, 0.680000<=prob1<=0.720000;
0.000010<=perr<=0.040000, 0.720000<=prob1<=0.760000;
0.000010<=perr<=0.040000, 0.760000<=prob1<=0.800000;
0.000010<=perr<=0.040000, 0.800000<=prob1<=0.840000;
0.000010<=perr<=0.040000, 0.840000<=prob1<=0.880000;
0.000010<=perr<=0.040000, 0.880000<=prob1<=0.920000;
0.000010<=perr<=0.040000, 0.920000<=prob1<=0.960000;
0.000010<=perr<=0.040000, 0.960000<=prob1<=0.999990;
0.040000<=perr<=0.080000, 0.000010<=prob1<=0.040000;
0.040000<=perr<=0.080000, 0.040000<=prob1<=0.080000;
0.040000<=perr<=0.080000, 0.080000<=prob1<=0.120000;
0.040000<=perr<=0.080000, 0.120000<=prob1<=0.160000;
0.040000<=perr<=0.080000, 0.160000<=prob1<=0.200000;
0.040000<=perr<=0.080000, 0.200000<=prob1<=0.240000;
0.040000<=perr<=0.080000, 0.240000<=prob1<=0.280000;
0.040000<=perr<=0.080000, 0.280000<=prob1<=0.320000;
0.040000<=perr<=0.080000, 0.320000<=prob1<=0.360000;
0.040000<=perr<=0.080000, 0.360000<=prob1<=0.400000;
0.040000<=perr<=0.080000, 0.400000<=prob1<=0.440000;
0.040000<=perr<=0.080000, 0.440000<=prob1<=0.480000;
0.040000<=perr<=0.080000, 0.480000<=prob1<=0.520000;
0.040000<=perr<=0.080000, 0.520000<=prob1<=0.560000;
0.040000<=perr<=0.080000, 0.560000<=prob1<=0.600000;
0.040000<=perr<=0.080000, 0.600000<=prob1<=0.640000;
0.040000<=perr<=0.080000, 0.640000<=prob1<=0.680000;
0.040000<=perr<=0.080000, 0.680000<=prob1<=0.720000;
0.040000<=perr<=0.080000, 0.720000<=prob1<=0.760000;
0.040000<=perr<=0.080000, 0.760000<=prob1<=0.800000;
0.040000<=perr<=0.080000, 0.800000<=prob1<=0.840000;
0.040000<=perr<=0.080000, 0.840000<=prob1<=0.880000;
0.040000<=perr<=0.080000, 0.880000<=prob1<=0.920000;
0.040000<=perr<=0.080000, 0.920000<=prob1<=0.960000;
0.040000<=perr<=0.080000, 0.960000<=prob1<=0.999990;
0.080000<=perr<=0.120000, 0.000010<=prob1<=0.040000;
0.080000<=perr<=0.120000, 0.040000<=prob1<=0.080000;
0.080000<=perr<=0.120000, 0.080000<=prob1<=0.120000;
0.080000<=perr<=0.120000, 0.120000<=prob1<=0.160000;
0.080000<=perr<=0.120000, 0.160000<=prob1<=0.200000;
0.080000<=perr<=0.120000, 0.200000<=prob1<=0.240000;
0.080000<=perr<=0.120000, 0.240000<=prob1<=0.280000;
0.080000<=perr<=0.120000, 0.280000<=prob1<=0.320000;
0.080000<=perr<=0.120000, 0.320000<=prob1<=0.360000;
0.080000<=perr<=0.120000, 0.360000<=prob1<=0.400000;
0.080000<=perr<=0.120000, 0.400000<=prob1<=0.440000;
0.080000<=perr<=0.120000, 0.440000<=prob1<=0.480000;
0.080000<=perr<=0.120000, 0.480000<=prob1<=0.520000;
0.080000<=perr<=0.120000, 0.520000<=prob1<=0.560000;
0.080000<=perr<=0.120000, 0.560000<=prob1<=0.600000;
0.080000<=perr<=0.120000, 0.600000<=prob1<=0.640000;
0.080000<=perr<=0.120000, 0.640000<=prob1<=0.680000;
0.080000<=perr<=0.120000, 0.680000<=prob1<=0.720000;
0.080000<=perr<=0.120000, 0.720000<=prob1<=0.760000;
0.080000<=perr<=0.120000, 0.760000<=prob1<=0.800000;
0.080000<=perr<=0.120000, 0.800000<=prob1<=0.840000;
0.080000<=perr<=0.120000, 0.840000<=prob1<=0.880000;
0.080000<=perr<=0.120000, 0.880000<=prob1<=0.920000;
0.080000<=perr<=0.120000, 0.920000<=prob1<=0.960000;
0.080000<=perr<=0.120000, 0.960000<=prob1<=0.999990;
0.120000<=perr<=0.160000, 0.000010<=prob1<=0.040000;
0.120000<=perr<=0.160000, 0.040000<=prob1<=0.080000;
0.120000<=perr<=0.160000, 0.080000<=prob1<=0.120000;
0.120000<=perr<=0.160000, 0.120000<=prob1<=0.160000;
0.120000<=perr<=0.160000, 0.160000<=prob1<=0.200000;
0.120000<=perr<=0.160000, 0.200000<=prob1<=0.240000;
0.120000<=perr<=0.160000, 0.240000<=prob1<=0.280000;
0.120000<=perr<=0.160000, 0.280000<=prob1<=0.320000;
0.120000<=perr<=0.160000, 0.320000<=prob1<=0.360000;
0.120000<=perr<=0.160000, 0.360000<=prob1<=0.400000;
0.120000<=perr<=0.160000, 0.400000<=prob1<=0.440000;
0.120000<=perr<=0.160000, 0.440000<=prob1<=0.480000;
0.120000<=perr<=0.160000, 0.480000<=prob1<=0.520000;
0.120000<=perr<=0.160000, 0.520000<=prob1<=0.560000;
0.120000<=perr<=0.160000, 0.560000<=prob1<=0.600000;
0.120000<=perr<=0.160000, 0.600000<=prob1<=0.640000;
0.120000<=perr<=0.160000, 0.640000<=prob1<=0.680000;
0.120000<=perr<=0.160000, 0.680000<=prob1<=0.720000;
0.120000<=perr<=0.160000, 0.720000<=prob1<=0.760000;
0.120000<=perr<=0.160000, 0.760000<=prob1<=0.800000;
0.120000<=perr<=0.160000, 0.800000<=prob1<=0.840000;
0.120000<=perr<=0.160000, 0.840000<=prob1<=0.880000;
0.120000<=perr<=0.160000, 0.880000<=prob1<=0.920000;
0.120000<=perr<=0.160000, 0.920000<=prob1<=0.960000;
0.120000<=perr<=0.160000, 0.960000<=prob1<=0.999990;
0.160000<=perr<=0.200000, 0.000010<=prob1<=0.040000;
0.160000<=perr<=0.200000, 0.040000<=prob1<=0.080000;
0.160000<=perr<=0.200000, 0.080000<=prob1<=0.120000;
0.160000<=perr<=0.200000, 0.120000<=prob1<=0.160000;
0.160000<=perr<=0.200000, 0.160000<=prob1<=0.200000;
0.160000<=perr<=0.200000, 0.200000<=prob1<=0.240000;
0.160000<=perr<=0.200000, 0.240000<=prob1<=0.280000;
0.160000<=perr<=0.200000, 0.280000<=prob1<=0.320000;
0.160000<=perr<=0.200000, 0.320000<=prob1<=0.360000;
0.160000<=perr<=0.200000, 0.360000<=prob1<=0.400000;
0.160000<=perr<=0.200000, 0.400000<=prob1<=0.440000;
0.160000<=perr<=0.200000, 0.440000<=prob1<=0.480000;
0.160000<=perr<=0.200000, 0.480000<=prob1<=0.520000;
0.160000<=perr<=0.200000, 0.520000<=prob1<=0.560000;
0.160000<=perr<=0.200000, 0.560000<=prob1<=0.600000;
0.160000<=perr<=0.200000, 0.600000<=prob1<=0.640000;
0.160000<=perr<=0.200000, 0.640000<=prob1<=0.680000;
0.160000<=perr<=0.200000, 0.680000<=prob1<=0.720000;
0.160000<=perr<=0.200000, 0.720000<=prob1<=0.760000;
0.160000<=perr<=0.200000, 0.760000<=prob1<=0.800000;
0.160000<=perr<=0.200000, 0.800000<=prob1<=0.840000;
0.160000<=perr<=0.200000, 0.840000<=prob1<=0.880000;
0.160000<=perr<=0.200000, 0.880000<=prob1<=0.920000;
0.160000<=perr<=0.200000, 0.920000<=prob1<=0.960000;
0.160000<=perr<=0.200000, 0.960000<=prob1<=0.999990;
0.200000<=perr<=0.240000, 0.000010<=prob1<=0.040000;
0.200000<=perr<=0.240000, 0.040000<=prob1<=0.080000;
0.200000<=perr<=0.240000, 0.080000<=prob1<=0.120000;
0.200000<=perr<=0.240000, 0.120000<=prob1<=0.160000;
0.200000<=perr<=0.240000, 0.160000<=prob1<=0.200000;
0.200000<=perr<=0.240000, 0.200000<=prob1<=0.240000;
0.200000<=perr<=0.240000, 0.240000<=prob1<=0.280000;
0.200000<=perr<=0.240000, 0.280000<=prob1<=0.320000;
0.200000<=perr<=0.240000, 0.320000<=prob1<=0.360000;
0.200000<=perr<=0.240000, 0.360000<=prob1<=0.400000;
0.200000<=perr<=0.240000, 0.400000<=prob1<=0.440000;
0.200000<=perr<=0.240000, 0.440000<=prob1<=0.480000;
0.200000<=perr<=0.240000, 0.480000<=prob1<=0.520000;
0.200000<=perr<=0.240000, 0.520000<=prob1<=0.560000;
0.200000<=perr<=0.240000, 0.560000<=prob1<=0.600000;
0.200000<=perr<=0.240000, 0.600000<=prob1<=0.640000;
0.200000<=perr<=0.240000, 0.640000<=prob1<=0.680000;
0.200000<=perr<=0.240000, 0.680000<=prob1<=0.720000;
0.200000<=perr<=0.240000, 0.720000<=prob1<=0.760000;
0.200000<=perr<=0.240000, 0.760000<=prob1<=0.800000;
0.200000<=perr<=0.240000, 0.800000<=prob1<=0.840000;
0.200000<=perr<=0.240000, 0.840000<=prob1<=0.880000;
0.200000<=perr<=0.240000, 0.880000<=prob1<=0.920000;
0.200000<=perr<=0.240000, 0.920000<=prob1<=0.960000;
0.200000<=perr<=0.240000, 0.960000<=prob1<=0.999990;
0.240000<=perr<=0.280000, 0.000010<=prob1<=0.040000;
0.240000<=perr<=0.280000, 0.040000<=prob1<=0.080000;
0.240000<=perr<=0.280000, 0.080000<=prob1<=0.120000;
0.240000<=perr<=0.280000, 0.120000<=prob1<=0.160000;
0.240000<=perr<=0.280000, 0.160000<=prob1<=0.200000;
0.240000<=perr<=0.280000, 0.200000<=prob1<=0.240000;
0.240000<=perr<=0.280000, 0.240000<=prob1<=0.280000;
0.240000<=perr<=0.280000, 0.280000<=prob1<=0.320000;
0.240000<=perr<=0.280000, 0.320000<=prob1<=0.360000;
0.240000<=perr<=0.280000, 0.360000<=prob1<=0.400000;
0.240000<=perr<=0.280000, 0.400000<=prob1<=0.440000;
0.240000<=perr<=0.280000, 0.440000<=prob1<=0.480000;
0.240000<=perr<=0.280000, 0.480000<=prob1<=0.520000;
0.240000<=perr<=0.280000, 0.520000<=prob1<=0.560000;
0.240000<=perr<=0.280000, 0.560000<=prob1<=0.600000;
0.240000<=perr<=0.280000, 0.600000<=prob1<=0.640000;
0.240000<=perr<=0.280000, 0.640000<=prob1<=0.680000;
0.240000<=perr<=0.280000, 0.680000<=prob1<=0.720000;
0.240000<=perr<=0.280000, 0.720000<=prob1<=0.760000;
0.240000<=perr<=0.280000, 0.760000<=prob1<=0.800000;
0.240000<=perr<=0.280000, 0.800000<=prob1<=0.840000;
0.240000<=perr<=0.280000, 0.840000<=prob1<=0.880000;
0.240000<=perr<=0.280000, 0.880000<=prob1<=0.920000;
0.240000<=perr<=0.280000, 0.920000<=prob1<=0.960000;
0.240000<=perr<=0.280000, 0.960000<=prob1<=0.999990;
0.280000<=perr<=0.320000, 0.000010<=prob1<=0.040000;
0.280000<=perr<=0.320000, 0.040000<=prob1<=0.080000;
0.280000<=perr<=0.320000, 0.080000<=prob1<=0.120000;
0.280000<=perr<=0.320000, 0.120000<=prob1<=0.160000;
0.280000<=perr<=0.320000, 0.160000<=prob1<=0.200000;
0.280000<=perr<=0.320000, 0.200000<=prob1<=0.240000;
0.280000<=perr<=0.320000, 0.240000<=prob1<=0.280000;
0.280000<=perr<=0.320000, 0.280000<=prob1<=0.320000;
0.280000<=perr<=0.320000, 0.320000<=prob1<=0.360000;
0.280000<=perr<=0.320000, 0.360000<=prob1<=0.400000;
0.280000<=perr<=0.320000, 0.400000<=prob1<=0.440000;
0.280000<=perr<=0.320000, 0.440000<=prob1<=0.480000;
0.280000<=perr<=0.320000, 0.480000<=prob1<=0.520000;
0.280000<=perr<=0.320000, 0.520000<=prob1<=0.560000;
0.280000<=perr<=0.320000, 0.560000<=prob1<=0.600000;
0.280000<=perr<=0.320000, 0.600000<=prob1<=0.640000;
0.280000<=perr<=0.320000, 0.640000<=prob1<=0.680000;
0.280000<=perr<=0.320000, 0.680000<=prob1<=0.720000;
0.280000<=perr<=0.320000, 0.720000<=prob1<=0.760000;
0.280000<=perr<=0.320000, 0.760000<=prob1<=0.800000;
0.280000<=perr<=0.320000, 0.800000<=prob1<=0.840000;
0.280000<=perr<=0.320000, 0.840000<=prob1<=0.880000;
0.280000<=perr<=0.320000, 0.880000<=prob1<=0.920000;
0.280000<=perr<=0.320000, 0.920000<=prob1<=0.960000;
0.280000<=perr<=0.320000, 0.960000<=prob1<=0.999990;
0.320000<=perr<=0.360000, 0.000010<=prob1<=0.040000;
0.320000<=perr<=0.360000, 0.040000<=prob1<=0.080000;
0.320000<=perr<=0.360000, 0.080000<=prob1<=0.120000;
0.320000<=perr<=0.360000, 0.120000<=prob1<=0.160000;
0.320000<=perr<=0.360000, 0.160000<=prob1<=0.200000;
0.320000<=perr<=0.360000, 0.200000<=prob1<=0.240000;
0.320000<=perr<=0.360000, 0.240000<=prob1<=0.280000;
0.320000<=perr<=0.360000, 0.280000<=prob1<=0.320000;
0.320000<=perr<=0.360000, 0.320000<=prob1<=0.360000;
0.320000<=perr<=0.360000, 0.360000<=prob1<=0.400000;
0.320000<=perr<=0.360000, 0.400000<=prob1<=0.440000;
0.320000<=perr<=0.360000, 0.440000<=prob1<=0.480000;
0.320000<=perr<=0.360000, 0.480000<=prob1<=0.520000;
0.320000<=perr<=0.360000, 0.520000<=prob1<=0.560000;
0.320000<=perr<=0.360000, 0.560000<=prob1<=0.600000;
0.320000<=perr<=0.360000, 0.600000<=prob1<=0.640000;
0.320000<=perr<=0.360000, 0.640000<=prob1<=0.680000;
0.320000<=perr<=0.360000, 0.680000<=prob1<=0.720000;
0.320000<=perr<=0.360000, 0.720000<=prob1<=0.760000;
0.320000<=perr<=0.360000, 0.760000<=prob1<=0.800000;
0.320000<=perr<=0.360000, 0.800000<=prob1<=0.840000;
0.320000<=perr<=0.360000, 0.840000<=prob1<=0.880000;
0.320000<=perr<=0.360000, 0.880000<=prob1<=0.920000;
0.320000<=perr<=0.360000, 0.920000<=prob1<=0.960000;
0.320000<=perr<=0.360000, 0.960000<=prob1<=0.999990;
0.360000<=perr<=0.400000, 0.000010<=prob1<=0.040000;
0.360000<=perr<=0.400000, 0.040000<=prob1<=0.080000;
0.360000<=perr<=0.400000, 0.080000<=prob1<=0.120000;
0.360000<=perr<=0.400000, 0.120000<=prob1<=0.160000;
0.360000<=perr<=0.400000, 0.160000<=prob1<=0.200000;
0.360000<=perr<=0.400000, 0.200000<=prob1<=0.240000;
0.360000<=perr<=0.400000, 0.240000<=prob1<=0.280000;
0.360000<=perr<=0.400000, 0.280000<=prob1<=0.320000;
0.360000<=perr<=0.400000, 0.320000<=prob1<=0.360000;
0.360000<=perr<=0.400000, 0.360000<=prob1<=0.400000;
0.360000<=perr<=0.400000, 0.400000<=prob1<=0.440000;
0.360000<=perr<=0.400000, 0.440000<=prob1<=0.480000;
0.360000<=perr<=0.400000, 0.480000<=prob1<=0.520000;
0.360000<=perr<=0.400000, 0.520000<=prob1<=0.560000;
0.360000<=perr<=0.400000, 0.560000<=prob1<=0.600000;
0.360000<=perr<=0.400000, 0.600000<=prob1<=0.640000;
0.360000<=perr<=0.400000, 0.640000<=prob1<=0.680000;
0.360000<=perr<=0.400000, 0.680000<=prob1<=0.720000;
0.360000<=perr<=0.400000, 0.720000<=prob1<=0.760000;
0.360000<=perr<=0.400000, 0.760000<=prob1<=0.800000;
0.360000<=perr<=0.400000, 0.800000<=prob1<=0.840000;
0.360000<=perr<=0.400000, 0.840000<=prob1<=0.880000;
0.360000<=perr<=0.400000, 0.880000<=prob1<=0.920000;
0.360000<=perr<=0.400000, 0.920000<=prob1<=0.960000;
0.360000<=perr<=0.400000, 0.960000<=prob1<=0.999990;
0.400000<=perr<=0.440000, 0.000010<=prob1<=0.040000;
0.400000<=perr<=0.440000, 0.040000<=prob1<=0.080000;
0.400000<=perr<=0.440000, 0.080000<=prob1<=0.120000;
0.400000<=perr<=0.440000, 0.120000<=prob1<=0.160000;
0.400000<=perr<=0.440000, 0.160000<=prob1<=0.200000;
0.400000<=perr<=0.440000, 0.200000<=prob1<=0.240000;
0.400000<=perr<=0.440000, 0.240000<=prob1<=0.280000;
0.400000<=perr<=0.440000, 0.280000<=prob1<=0.320000;
0.400000<=perr<=0.440000, 0.320000<=prob1<=0.360000;
0.400000<=perr<=0.440000, 0.360000<=prob1<=0.400000;
0.400000<=perr<=0.440000, 0.400000<=prob1<=0.440000;
0.400000<=perr<=0.440000, 0.440000<=prob1<=0.480000;
0.400000<=perr<=0.440000, 0.480000<=prob1<=0.520000;
0.400000<=perr<=0.440000, 0.520000<=prob1<=0.560000;
0.400000<=perr<=0.440000, 0.560000<=prob1<=0.600000;
0.400000<=perr<=0.440000, 0.600000<=prob1<=0.640000;
0.400000<=perr<=0.440000, 0.640000<=prob1<=0.680000;
0.400000<=perr<=0.440000, 0.680000<=prob1<=0.720000;
0.400000<=perr<=0.440000, 0.720000<=prob1<=0.760000;
0.400000<=perr<=0.440000, 0.760000<=prob1<=0.800000;
0.400000<=perr<=0.440000, 0.800000<=prob1<=0.840000;
0.400000<=perr<=0.440000, 0.840000<=prob1<=0.880000;
0.400000<=perr<=0.440000, 0.880000<=prob1<=0.920000;
0.400000<=perr<=0.440000, 0.920000<=prob1<=0.960000;
0.400000<=perr<=0.440000, 0.960000<=prob1<=0.999990;
0.440000<=perr<=0.480000, 0.000010<=prob1<=0.040000;
0.440000<=perr<=0.480000, 0.040000<=prob1<=0.080000;
0.440000<=perr<=0.480000, 0.080000<=prob1<=0.120000;
0.440000<=perr<=0.480000, 0.120000<=prob1<=0.160000;
0.440000<=perr<=0.480000, 0.160000<=prob1<=0.200000;
0.440000<=perr<=0.480000, 0.200000<=prob1<=0.240000;
0.440000<=perr<=0.480000, 0.240000<=prob1<=0.280000;
0.440000<=perr<=0.480000, 0.280000<=prob1<=0.320000;
0.440000<=perr<=0.480000, 0.320000<=prob1<=0.360000;
0.440000<=perr<=0.480000, 0.360000<=prob1<=0.400000;
0.440000<=perr<=0.480000, 0.400000<=prob1<=0.440000;
0.440000<=perr<=0.480000, 0.440000<=prob1<=0.480000;
0.440000<=perr<=0.480000, 0.480000<=prob1<=0.520000;
0.440000<=perr<=0.480000, 0.520000<=prob1<=0.560000;
0.440000<=perr<=0.480000, 0.560000<=prob1<=0.600000;
0.440000<=perr<=0.480000, 0.600000<=prob1<=0.640000;
0.440000<=perr<=0.480000, 0.640000<=prob1<=0.680000;
0.440000<=perr<=0.480000, 0.680000<=prob1<=0.720000;
0.440000<=perr<=0.480000, 0.720000<=prob1<=0.760000;
0.440000<=perr<=0.480000, 0.760000<=prob1<=0.800000;
0.440000<=perr<=0.480000, 0.800000<=prob1<=0.840000;
0.440000<=perr<=0.480000, 0.840000<=prob1<=0.880000;
0.440000<=perr<=0.480000, 0.880000<=prob1<=0.920000;
0.440000<=perr<=0.480000, 0.920000<=prob1<=0.960000;
0.440000<=perr<=0.480000, 0.960000<=prob1<=0.999990;
0.480000<=perr<=0.520000, 0.000010<=prob1<=0.040000;
0.480000<=perr<=0.520000, 0.040000<=prob1<=0.080000;
0.480000<=perr<=0.520000, 0.080000<=prob1<=0.120000;
0.480000<=perr<=0.520000, 0.120000<=prob1<=0.160000;
0.480000<=perr<=0.520000, 0.160000<=prob1<=0.200000;
0.480000<=perr<=0.520000, 0.200000<=prob1<=0.240000;
0.480000<=perr<=0.520000, 0.240000<=prob1<=0.280000;
0.480000<=perr<=0.520000, 0.280000<=prob1<=0.320000;
0.480000<=perr<=0.520000, 0.320000<=prob1<=0.360000;
0.480000<=perr<=0.520000, 0.360000<=prob1<=0.400000;
0.480000<=perr<=0.520000, 0.400000<=prob1<=0.440000;
0.480000<=perr<=0.520000, 0.440000<=prob1<=0.480000;
0.480000<=perr<=0.520000, 0.480000<=prob1<=0.520000;
0.480000<=perr<=0.520000, 0.520000<=prob1<=0.560000;
0.480000<=perr<=0.520000, 0.560000<=prob1<=0.600000;
0.480000<=perr<=0.520000, 0.600000<=prob1<=0.640000;
0.480000<=perr<=0.520000, 0.640000<=prob1<=0.680000;
0.480000<=perr<=0.520000, 0.680000<=prob1<=0.720000;
0.480000<=perr<=0.520000, 0.720000<=prob1<=0.760000;
0.480000<=perr<=0.520000, 0.760000<=prob1<=0.800000;
0.480000<=perr<=0.520000, 0.800000<=prob1<=0.840000;
0.480000<=perr<=0.520000, 0.840000<=prob1<=0.880000;
0.480000<=perr<=0.520000, 0.880000<=prob1<=0.920000;
0.480000<=perr<=0.520000, 0.920000<=prob1<=0.960000;
0.480000<=perr<=0.520000, 0.960000<=prob1<=0.999990;
0.520000<=perr<=0.560000, 0.000010<=prob1<=0.040000;
0.520000<=perr<=0.560000, 0.040000<=prob1<=0.080000;
0.520000<=perr<=0.560000, 0.080000<=prob1<=0.120000;
0.520000<=perr<=0.560000, 0.120000<=prob1<=0.160000;
0.520000<=perr<=0.560000, 0.160000<=prob1<=0.200000;
0.520000<=perr<=0.560000, 0.200000<=prob1<=0.240000;
0.520000<=perr<=0.560000, 0.240000<=prob1<=0.280000;
0.520000<=perr<=0.560000, 0.280000<=prob1<=0.320000;
0.520000<=perr<=0.560000, 0.320000<=prob1<=0.360000;
0.520000<=perr<=0.560000, 0.360000<=prob1<=0.400000;
0.520000<=perr<=0.560000, 0.400000<=prob1<=0.440000;
0.520000<=perr<=0.560000, 0.440000<=prob1<=0.480000;
0.520000<=perr<=0.560000, 0.480000<=prob1<=0.520000;
0.520000<=perr<=0.560000, 0.520000<=prob1<=0.560000;
0.520000<=perr<=0.560000, 0.560000<=prob1<=0.600000;
0.520000<=perr<=0.560000, 0.600000<=prob1<=0.640000;
0.520000<=perr<=0.560000, 0.640000<=prob1<=0.680000;
0.520000<=perr<=0.560000, 0.680000<=prob1<=0.720000;
0.520000<=perr<=0.560000, 0.720000<=prob1<=0.760000;
0.520000<=perr<=0.560000, 0.760000<=prob1<=0.800000;
0.520000<=perr<=0.560000, 0.800000<=prob1<=0.840000;
0.520000<=perr<=0.560000, 0.840000<=prob1<=0.880000;
0.520000<=perr<=0.560000, 0.880000<=prob1<=0.920000;
0.520000<=perr<=0.560000, 0.920000<=prob1<=0.960000;
0.520000<=perr<=0.560000, 0.960000<=prob1<=0.999990;
0.560000<=perr<=0.600000, 0.000010<=prob1<=0.040000;
0.560000<=perr<=0.600000, 0.040000<=prob1<=0.080000;
0.560000<=perr<=0.600000, 0.080000<=prob1<=0.120000;
0.560000<=perr<=0.600000, 0.120000<=prob1<=0.160000;
0.560000<=perr<=0.600000, 0.160000<=prob1<=0.200000;
0.560000<=perr<=0.600000, 0.200000<=prob1<=0.240000;
0.560000<=perr<=0.600000, 0.240000<=prob1<=0.280000;
0.560000<=perr<=0.600000, 0.280000<=prob1<=0.320000;
0.560000<=perr<=0.600000, 0.320000<=prob1<=0.360000;
0.560000<=perr<=0.600000, 0.360000<=prob1<=0.400000;
0.560000<=perr<=0.600000, 0.400000<=prob1<=0.440000;
0.560000<=perr<=0.600000, 0.440000<=prob1<=0.480000;
0.560000<=perr<=0.600000, 0.480000<=prob1<=0.520000;
0.560000<=perr<=0.600000, 0.520000<=prob1<=0.560000;
0.560000<=perr<=0.600000, 0.560000<=prob1<=0.600000;
0.560000<=perr<=0.600000, 0.600000<=prob1<=0.640000;
0.560000<=perr<=0.600000, 0.640000<=prob1<=0.680000;
0.560000<=perr<=0.600000, 0.680000<=prob1<=0.720000;
0.560000<=perr<=0.600000, 0.720000<=prob1<=0.760000;
0.560000<=perr<=0.600000, 0.760000<=prob1<=0.800000;
0.560000<=perr<=0.600000, 0.800000<=prob1<=0.840000;
0.560000<=perr<=0.600000, 0.840000<=prob1<=0.880000;
0.560000<=perr<=0.600000, 0.880000<=prob1<=0.920000;
0.560000<=perr<=0.600000, 0.920000<=prob1<=0.960000;
0.560000<=perr<=0.600000, 0.960000<=prob1<=0.999990;
0.600000<=perr<=0.640000, 0.000010<=prob1<=0.040000;
0.600000<=perr<=0.640000, 0.040000<=prob1<=0.080000;
0.600000<=perr<=0.640000, 0.080000<=prob1<=0.120000;
0.600000<=perr<=0.640000, 0.120000<=prob1<=0.160000;
0.600000<=perr<=0.640000, 0.160000<=prob1<=0.200000;
0.600000<=perr<=0.640000, 0.200000<=prob1<=0.240000;
0.600000<=perr<=0.640000, 0.240000<=prob1<=0.280000;
0.600000<=perr<=0.640000, 0.280000<=prob1<=0.320000;
0.600000<=perr<=0.640000, 0.320000<=prob1<=0.360000;
0.600000<=perr<=0.640000, 0.360000<=prob1<=0.400000;
0.600000<=perr<=0.640000, 0.400000<=prob1<=0.440000;
0.600000<=perr<=0.640000, 0.440000<=prob1<=0.480000;
0.600000<=perr<=0.640000, 0.480000<=prob1<=0.520000;
0.600000<=perr<=0.640000, 0.520000<=prob1<=0.560000;
0.600000<=perr<=0.640000, 0.560000<=prob1<=0.600000;
0.600000<=perr<=0.640000, 0.600000<=prob1<=0.640000;
0.600000<=perr<=0.640000, 0.640000<=prob1<=0.680000;
0.600000<=perr<=0.640000, 0.680000<=prob1<=0.720000;
0.600000<=perr<=0.640000, 0.720000<=prob1<=0.760000;
0.600000<=perr<=0.640000, 0.760000<=prob1<=0.800000;
0.600000<=perr<=0.640000, 0.800000<=prob1<=0.840000;
0.600000<=perr<=0.640000, 0.840000<=prob1<=0.880000;
0.600000<=perr<=0.640000, 0.880000<=prob1<=0.920000;
0.600000<=perr<=0.640000, 0.920000<=prob1<=0.960000;
0.600000<=perr<=0.640000, 0.960000<=prob1<=0.999990;
0.640000<=perr<=0.680000, 0.000010<=prob1<=0.040000;
0.640000<=perr<=0.680000, 0.040000<=prob1<=0.080000;
0.640000<=perr<=0.680000, 0.080000<=prob1<=0.120000;
0.640000<=perr<=0.680000, 0.120000<=prob1<=0.160000;
0.640000<=perr<=0.680000, 0.160000<=prob1<=0.200000;
0.640000<=perr<=0.680000, 0.200000<=prob1<=0.240000;
0.640000<=perr<=0.680000, 0.240000<=prob1<=0.280000;
0.640000<=perr<=0.680000, 0.280000<=prob1<=0.320000;
0.640000<=perr<=0.680000, 0.320000<=prob1<=0.360000;
0.640000<=perr<=0.680000, 0.360000<=prob1<=0.400000;
0.640000<=perr<=0.680000, 0.400000<=prob1<=0.440000;
0.640000<=perr<=0.680000, 0.440000<=prob1<=0.480000;
0.640000<=perr<=0.680000, 0.480000<=prob1<=0.520000;
0.640000<=perr<=0.680000, 0.520000<=prob1<=0.560000;
0.640000<=perr<=0.680000, 0.560000<=prob1<=0.600000;
0.640000<=perr<=0.680000, 0.600000<=prob1<=0.640000;
0.640000<=perr<=0.680000, 0.640000<=prob1<=0.680000;
0.640000<=perr<=0.680000, 0.680000<=prob1<=0.720000;
0.640000<=perr<=0.680000, 0.720000<=prob1<=0.760000;
0.640000<=perr<=0.680000, 0.760000<=prob1<=0.800000;
0.640000<=perr<=0.680000, 0.800000<=prob1<=0.840000;
0.640000<=perr<=0.680000, 0.840000<=prob1<=0.880000;
0.640000<=perr<=0.680000, 0.880000<=prob1<=0.920000;
0.640000<=perr<=0.680000, 0.920000<=prob1<=0.960000;
0.640000<=perr<=0.680000, 0.960000<=prob1<=0.999990;
0.680000<=perr<=0.720000, 0.000010<=prob1<=0.040000;
0.680000<=perr<=0.720000, 0.040000<=prob1<=0.080000;
0.680000<=perr<=0.720000, 0.080000<=prob1<=0.120000;
0.680000<=perr<=0.720000, 0.120000<=prob1<=0.160000;
0.680000<=perr<=0.720000, 0.160000<=prob1<=0.200000;
0.680000<=perr<=0.720000, 0.200000<=prob1<=0.240000;
0.680000<=perr<=0.720000, 0.240000<=prob1<=0.280000;
0.680000<=perr<=0.720000, 0.280000<=prob1<=0.320000;
0.680000<=perr<=0.720000, 0.320000<=prob1<=0.360000;
0.680000<=perr<=0.720000, 0.360000<=prob1<=0.400000;
0.680000<=perr<=0.720000, 0.400000<=prob1<=0.440000;
0.680000<=perr<=0.720000, 0.440000<=prob1<=0.480000;
0.680000<=perr<=0.720000, 0.480000<=prob1<=0.520000;
0.680000<=perr<=0.720000, 0.520000<=prob1<=0.560000;
0.680000<=perr<=0.720000, 0.560000<=prob1<=0.600000;
0.680000<=perr<=0.720000, 0.600000<=prob1<=0.640000;
0.680000<=perr<=0.720000, 0.640000<=prob1<=0.680000;
0.680000<=perr<=0.720000, 0.680000<=prob1<=0.720000;
0.680000<=perr<=0.720000, 0.720000<=prob1<=0.760000;
0.680000<=perr<=0.720000, 0.760000<=prob1<=0.800000;
0.680000<=perr<=0.720000, 0.800000<=prob1<=0.840000;
0.680000<=perr<=0.720000, 0.840000<=prob1<=0.880000;
0.680000<=perr<=0.720000, 0.880000<=prob1<=0.920000;
0.680000<=perr<=0.720000, 0.920000<=prob1<=0.960000;
0.680000<=perr<=0.720000, 0.960000<=prob1<=0.999990;
0.720000<=perr<=0.760000, 0.000010<=prob1<=0.040000;
0.720000<=perr<=0.760000, 0.040000<=prob1<=0.080000;
0.720000<=perr<=0.760000, 0.080000<=prob1<=0.120000;
0.720000<=perr<=0.760000, 0.120000<=prob1<=0.160000;
0.720000<=perr<=0.760000, 0.160000<=prob1<=0.200000;
0.720000<=perr<=0.760000, 0.200000<=prob1<=0.240000;
0.720000<=perr<=0.760000, 0.240000<=prob1<=0.280000;
0.720000<=perr<=0.760000, 0.280000<=prob1<=0.320000;
0.720000<=perr<=0.760000, 0.320000<=prob1<=0.360000;
0.720000<=perr<=0.760000, 0.360000<=prob1<=0.400000;
0.720000<=perr<=0.760000, 0.400000<=prob1<=0.440000;
0.720000<=perr<=0.760000, 0.440000<=prob1<=0.480000;
0.720000<=perr<=0.760000, 0.480000<=prob1<=0.520000;
0.720000<=perr<=0.760000, 0.520000<=prob1<=0.560000;
0.720000<=perr<=0.760000, 0.560000<=prob1<=0.600000;
0.720000<=perr<=0.760000, 0.600000<=prob1<=0.640000;
0.720000<=perr<=0.760000, 0.640000<=prob1<=0.680000;
0.720000<=perr<=0.760000, 0.680000<=prob1<=0.720000;
0.720000<=perr<=0.760000, 0.720000<=prob1<=0.760000;
0.720000<=perr<=0.760000, 0.760000<=prob1<=0.800000;
0.720000<=perr<=0.760000, 0.800000<=prob1<=0.840000;
0.720000<=perr<=0.760000, 0.840000<=prob1<=0.880000;
0.720000<=perr<=0.760000, 0.880000<=prob1<=0.920000;
0.720000<=perr<=0.760000, 0.920000<=prob1<=0.960000;
0.720000<=perr<=0.760000, 0.960000<=prob1<=0.999990;
0.760000<=perr<=0.800000, 0.000010<=prob1<=0.040000;
0.760000<=perr<=0.800000, 0.040000<=prob1<=0.080000;
0.760000<=perr<=0.800000, 0.080000<=prob1<=0.120000;
0.760000<=perr<=0.800000, 0.120000<=prob1<=0.160000;
0.760000<=perr<=0.800000, 0.160000<=prob1<=0.200000;
0.760000<=perr<=0.800000, 0.200000<=prob1<=0.240000;
0.760000<=perr<=0.800000, 0.240000<=prob1<=0.280000;
0.760000<=perr<=0.800000, 0.280000<=prob1<=0.320000;
0.760000<=perr<=0.800000, 0.320000<=prob1<=0.360000;
0.760000<=perr<=0.800000, 0.360000<=prob1<=0.400000;
0.760000<=perr<=0.800000, 0.400000<=prob1<=0.440000;
0.760000<=perr<=0.800000, 0.440000<=prob1<=0.480000;
0.760000<=perr<=0.800000, 0.480000<=prob1<=0.520000;
0.760000<=perr<=0.800000, 0.520000<=prob1<=0.560000;
0.760000<=perr<=0.800000, 0.560000<=prob1<=0.600000;
0.760000<=perr<=0.800000, 0.600000<=prob1<=0.640000;
0.760000<=perr<=0.800000, 0.640000<=prob1<=0.680000;
0.760000<=perr<=0.800000, 0.680000<=prob1<=0.720000;
0.760000<=perr<=0.800000, 0.720000<=prob1<=0.760000;
0.760000<=perr<=0.800000, 0.760000<=prob1<=0.800000;
0.760000<=perr<=0.800000, 0.800000<=prob1<=0.840000;
0.760000<=perr<=0.800000, 0.840000<=prob1<=0.880000;
0.760000<=perr<=0.800000, 0.880000<=prob1<=0.920000;
0.760000<=perr<=0.800000, 0.920000<=prob1<=0.960000;
0.760000<=perr<=0.800000, 0.960000<=prob1<=0.999990;
0.800000<=perr<=0.840000, 0.000010<=prob1<=0.040000;
0.800000<=perr<=0.840000, 0.040000<=prob1<=0.080000;
0.800000<=perr<=0.840000, 0.080000<=prob1<=0.120000;
0.800000<=perr<=0.840000, 0.120000<=prob1<=0.160000;
0.800000<=perr<=0.840000, 0.160000<=prob1<=0.200000;
0.800000<=perr<=0.840000, 0.200000<=prob1<=0.240000;
0.800000<=perr<=0.840000, 0.240000<=prob1<=0.280000;
0.800000<=perr<=0.840000, 0.280000<=prob1<=0.320000;
0.800000<=perr<=0.840000, 0.320000<=prob1<=0.360000;
0.800000<=perr<=0.840000, 0.360000<=prob1<=0.400000;
0.800000<=perr<=0.840000, 0.400000<=prob1<=0.440000;
0.800000<=perr<=0.840000, 0.440000<=prob1<=0.480000;
0.800000<=perr<=0.840000, 0.480000<=prob1<=0.520000;
0.800000<=perr<=0.840000, 0.520000<=prob1<=0.560000;
0.800000<=perr<=0.840000, 0.560000<=prob1<=0.600000;
0.800000<=perr<=0.840000, 0.600000<=prob1<=0.640000;
0.800000<=perr<=0.840000, 0.640000<=prob1<=0.680000;
0.800000<=perr<=0.840000, 0.680000<=prob1<=0.720000;
0.800000<=perr<=0.840000, 0.720000<=prob1<=0.760000;
0.800000<=perr<=0.840000, 0.760000<=prob1<=0.800000;
0.800000<=perr<=0.840000, 0.800000<=prob1<=0.840000;
0.800000<=perr<=0.840000, 0.840000<=prob1<=0.880000;
0.800000<=perr<=0.840000, 0.880000<=prob1<=0.920000;
0.800000<=perr<=0.840000, 0.920000<=prob1<=0.960000;
0.800000<=perr<=0.840000, 0.960000<=prob1<=0.999990;
0.840000<=perr<=0.880000, 0.000010<=prob1<=0.040000;
0.840000<=perr<=0.880000, 0.040000<=prob1<=0.080000;
0.840000<=perr<=0.880000, 0.080000<=prob1<=0.120000;
0.840000<=perr<=0.880000, 0.120000<=prob1<=0.160000;
0.840000<=perr<=0.880000, 0.160000<=prob1<=0.200000;
0.840000<=perr<=0.880000, 0.200000<=prob1<=0.240000;
0.840000<=perr<=0.880000, 0.240000<=prob1<=0.280000;
0.840000<=perr<=0.880000, 0.280000<=prob1<=0.320000;
0.840000<=perr<=0.880000, 0.320000<=prob1<=0.360000;
0.840000<=perr<=0.880000, 0.360000<=prob1<=0.400000;
0.840000<=perr<=0.880000, 0.400000<=prob1<=0.440000;
0.840000<=perr<=0.880000, 0.440000<=prob1<=0.480000;
0.840000<=perr<=0.880000, 0.480000<=prob1<=0.520000;
0.840000<=perr<=0.880000, 0.520000<=prob1<=0.560000;
0.840000<=perr<=0.880000, 0.560000<=prob1<=0.600000;
0.840000<=perr<=0.880000, 0.600000<=prob1<=0.640000;
0.840000<=perr<=0.880000, 0.640000<=prob1<=0.680000;
0.840000<=perr<=0.880000, 0.680000<=prob1<=0.720000;
0.840000<=perr<=0.880000, 0.720000<=prob1<=0.760000;
0.840000<=perr<=0.880000, 0.760000<=prob1<=0.800000;
0.840000<=perr<=0.880000, 0.800000<=prob1<=0.840000;
0.840000<=perr<=0.880000, 0.840000<=prob1<=0.880000;
0.840000<=perr<=0.880000, 0.880000<=prob1<=0.920000;
0.840000<=perr<=0.880000, 0.920000<=prob1<=0.960000;
0.840000<=perr<=0.880000, 0.960000<=prob1<=0.999990;
0.880000<=perr<=0.920000, 0.000010<=prob1<=0.040000;
0.880000<=perr<=0.920000, 0.040000<=prob1<=0.080000;
0.880000<=perr<=0.920000, 0.080000<=prob1<=0.120000;
0.880000<=perr<=0.920000, 0.120000<=prob1<=0.160000;
0.880000<=perr<=0.920000, 0.160000<=prob1<=0.200000;
0.880000<=perr<=0.920000, 0.200000<=prob1<=0.240000;
0.880000<=perr<=0.920000, 0.240000<=prob1<=0.280000;
0.880000<=perr<=0.920000, 0.280000<=prob1<=0.320000;
0.880000<=perr<=0.920000, 0.320000<=prob1<=0.360000;
0.880000<=perr<=0.920000, 0.360000<=prob1<=0.400000;
0.880000<=perr<=0.920000, 0.400000<=prob1<=0.440000;
0.880000<=perr<=0.920000, 0.440000<=prob1<=0.480000;
0.880000<=perr<=0.920000, 0.480000<=prob1<=0.520000;
0.880000<=perr<=0.920000, 0.520000<=prob1<=0.560000;
0.880000<=perr<=0.920000, 0.560000<=prob1<=0.600000;
0.880000<=perr<=0.920000, 0.600000<=prob1<=0.640000;
0.880000<=perr<=0.920000, 0.640000<=prob1<=0.680000;
0.880000<=perr<=0.920000, 0.680000<=prob1<=0.720000;
0.880000<=perr<=0.920000, 0.720000<=prob1<=0.760000;
0.880000<=perr<=0.920000, 0.760000<=prob1<=0.800000;
0.880000<=perr<=0.920000, 0.800000<=prob1<=0.840000;
0.880000<=perr<=0.920000, 0.840000<=prob1<=0.880000;
0.880000<=perr<=0.920000, 0.880000<=prob1<=0.920000;
0.880000<=perr<=0.920000, 0.920000<=prob1<=0.960000;
0.880000<=perr<=0.920000, 0.960000<=prob1<=0.999990;
0.920000<=perr<=0.960000, 0.000010<=prob1<=0.040000;
0.920000<=perr<=0.960000, 0.040000<=prob1<=0.080000;
0.920000<=perr<=0.960000, 0.080000<=prob1<=0.120000;
0.920000<=perr<=0.960000, 0.120000<=prob1<=0.160000;
0.920000<=perr<=0.960000, 0.160000<=prob1<=0.200000;
0.920000<=perr<=0.960000, 0.200000<=prob1<=0.240000;
0.920000<=perr<=0.960000, 0.240000<=prob1<=0.280000;
0.920000<=perr<=0.960000, 0.280000<=prob1<=0.320000;
0.920000<=perr<=0.960000, 0.320000<=prob1<=0.360000;
0.920000<=perr<=0.960000, 0.360000<=prob1<=0.400000;
0.920000<=perr<=0.960000, 0.400000<=prob1<=0.440000;
0.920000<=perr<=0.960000, 0.440000<=prob1<=0.480000;
0.920000<=perr<=0.960000, 0.480000<=prob1<=0.520000;
0.920000<=perr<=0.960000, 0.520000<=prob1<=0.560000;
0.920000<=perr<=0.960000, 0.560000<=prob1<=0.600000;
0.920000<=perr<=0.960000, 0.600000<=prob1<=0.640000;
0.920000<=perr<=0.960000, 0.640000<=prob1<=0.680000;
0.920000<=perr<=0.960000, 0.680000<=prob1<=0.720000;
0.920000<=perr<=0.960000, 0.720000<=prob1<=0.760000;
0.920000<=perr<=0.960000, 0.760000<=prob1<=0.800000;
0.920000<=perr<=0.960000, 0.800000<=prob1<=0.840000;
0.920000<=perr<=0.960000, 0.840000<=prob1<=0.880000;
0.920000<=perr<=0.960000, 0.880000<=prob1<=0.920000;
0.920000<=perr<=0.960000, 0.920000<=prob1<=0.960000;
0.920000<=perr<=0.960000, 0.960000<=prob1<=0.999990;
0.960000<=perr<=0.999990, 0.000010<=prob1<=0.040000;
0.960000<=perr<=0.999990, 0.040000<=prob1<=0.080000;
0.960000<=perr<=0.999990, 0.080000<=prob1<=0.120000;
0.960000<=perr<=0.999990, 0.120000<=prob1<=0.160000;
0.960000<=perr<=0.999990, 0.160000<=prob1<=0.200000;
0.960000<=perr<=0.999990, 0.200000<=prob1<=0.240000;
0.960000<=perr<=0.999990, 0.240000<=prob1<=0.280000;
0.960000<=perr<=0.999990, 0.280000<=prob1<=0.320000;
0.960000<=perr<=0.999990, 0.320000<=prob1<=0.360000;
0.960000<=perr<=0.999990, 0.360000<=prob1<=0.400000;
0.960000<=perr<=0.999990, 0.400000<=prob1<=0.440000;
0.960000<=perr<=0.999990, 0.440000<=prob1<=0.480000;
0.960000<=perr<=0.999990, 0.480000<=prob1<=0.520000;
0.960000<=perr<=0.999990, 0.520000<=prob1<=0.560000;
0.960000<=perr<=0.999990, 0.560000<=prob1<=0.600000;
0.960000<=perr<=0.999990, 0.600000<=prob1<=0.640000;
0.960000<=perr<=0.999990, 0.640000<=prob1<=0.680000;
0.960000<=perr<=0.999990, 0.680000<=prob1<=0.720000;
0.960000<=perr<=0.999990, 0.720000<=prob1<=0.760000;
0.960000<=perr<=0.999990, 0.760000<=prob1<=0.800000;
0.960000<=perr<=0.999990, 0.800000<=prob1<=0.840000;
0.960000<=perr<=0.999990, 0.840000<=prob1<=0.880000;
0.960000<=perr<=0.999990, 0.880000<=prob1<=0.920000;
0.960000<=perr<=0.999990, 0.920000<=prob1<=0.960000;
0.960000<=perr<=0.999990, 0.960000<=prob1<=0.999990;

2
examples/pdtmc/nand/nand_space.txt

@ -0,0 +1,2 @@
0.000010<=perr<=0.999990, 0.000010<=prob1<=0.999990;

16
examples/pdtmc/tiny/tiny.pm

@ -1,16 +0,0 @@
dtmc
module tiny
s : [0 .. 3] init 0;
[] s = 0 -> 1/3 : (s'=1) + 1/3 : (s'=2) + 1/3 : (s'=3);
[] s = 1 -> 1 : (s'=2);
[] s = 2 -> 1/2 : (s'=2) + 1/2 : (s'=1);
[] s = 3 -> 1 : (s'=3);
endmodule
rewards
s=1 : 10;
s=3 : 5;
endrewards

51
examples/plot.sh

@ -0,0 +1,51 @@
#!/bin/bash
executable="timeout 3600 ../build/src/storm"
arguments="-i 1000000 --parametric --parametricRegion --region:samplemode off"
mkdir plotresults
declare -a brpPars=("16" "128" "256" "384" "512" "640" "768" "896" "1024" "1152" "1280" "1408" "1536" "1664" "1792" "1920" "2048" "2176" "2304" "2432" "2560" "2688" "2816" "2944" "3072" "3200" "3328" "3456" "3584" "3712" "3840" "3968" "4096")
declare -a repPars=("3" "6" "9" "12" "15" "18" "21" "24" "27" "30" "33" "36" "39" "42" "45" "48" "51" "54" "57" "60" "63" "66" "69" "72" "75" "78" "81" "84" "87" "90" "93" "96" "99" "100")
plot_brp2 () {
for brp2par in "${brpPars[@]}"
do
$executable -s ./pdtmc/brp_rewards2/brp_rewards2.pm -const N="$brp2par",MAX=5 --prop ./pdtmc/brp_rewards2/brp_rewards2.prctl --region:regionfile ./pdtmc/brp_rewards2/brp_rewards2_regions.txt $arguments | tee -a ./plotresults/pdtmc_brp_rewards2.log
done
}
plot_brp4 () {
for brp4par in "${brpPars[@]}"
do
$executable -s ./pdtmc/brp_rewards4/brp_rewards4.pm -const N="$brp4par",MAX=5 --prop ./pdtmc/brp_rewards4/brp_rewards4.prctl --region:regionfile ./pdtmc/brp_rewards4/brp_rewards4_regions.txt $arguments | tee -a ./plotresults/pdtmc_brp_rewards4.log
done
}
plot_rep2 () {
for rep2par in "${repPars[@]}"
do
$executable -s ./pmdp/reporter2/reporter2.pm -const Xsize="$rep2par",Ysize="$rep2par",MAXTRIES=2,B=2 --prop ./pmdp/reporter2/reporter2.prctl --region:regionfile ./pmdp/reporter2/reporter2_regions.txt $arguments | tee -a ./plotresults/pmdp_reporter2.log
done
}
plot_rep4 () {
for rep4par in "${repPars[@]}"
do
$executable -s ./pmdp/reporter4/reporter4.pm -const Xsize="$rep4par",Ysize="$rep4par",MAXTRIES=2,B=2 --prop ./pmdp/reporter4/reporter4.prctl --region:regionfile ./pmdp/reporter4/reporter4_regions.txt $arguments | tee -a ./plotresults/pmdp_reporter4.log
done
}
plot_brp2 &
plot_brp4 &
plot_rep2 &
plot_rep4 &
wait
echo "done!"

139
examples/pmdp/brp/brp.pm

@ -0,0 +1,139 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
mdp
//dtmc
// number of chunks
const int N;
// maximum number of retransmissions
const int MAX;
// reliability of channels
const double pL;
const double pK;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
module checker
T : bool init false;
[NewFile] (T=false) -> (T'=false);
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

2
examples/pmdp/brp/brp.prctl

@ -0,0 +1,2 @@
P<0.5 [ F (s=5 & T) ]

139
examples/pmdp/brp/brp16_2.pm

@ -0,0 +1,139 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
mdp
//dtmc
// number of chunks
const int N = 16;
// maximum number of retransmissions
const int MAX = 2;
// reliability of channels
const double pL;
const double pK;
global T : bool;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
module checker
[NewFile] (T=false) -> (T'=false);
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

139
examples/pmdp/brp/brp256_5.pm

@ -0,0 +1,139 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
mdp
//dtmc
// number of chunks
const int N = 256;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
global T : bool;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
module checker
[NewFile] (T=false) -> (T'=false);
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

139
examples/pmdp/brp/brp512_5.pm

@ -0,0 +1,139 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
mdp
//dtmc
// number of chunks
const int N = 512;
// maximum number of retransmissions
const int MAX = 5;
// reliability of channels
const double pL;
const double pK;
global T : bool;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
module checker
[NewFile] (T=false) -> (T'=false);
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

139
examples/pmdp/brp/brp64_4.pm

@ -0,0 +1,139 @@
// bounded retransmission protocol [D'AJJL01]
// gxn/dxp 23/05/2001
// Modified by Ernst Moritz Hahn (emh@cs.uni-sb.de)
mdp
//dtmc
// number of chunks
const int N = 64;
// maximum number of retransmissions
const int MAX = 4;
// reliability of channels
const double pL;
const double pK;
global T : bool;
module sender
s : [0..6];
// 0 idle
// 1 next_frame
// 2 wait_ack
// 3 retransmit
// 4 success
// 5 error
// 6 wait sync
srep : [0..3];
// 0 bottom
// 1 not ok (nok)
// 2 do not know (dk)
// 3 ok (ok)
nrtr : [0..MAX];
i : [0..N];
bs : bool;
s_ab : bool;
fs : bool;
ls : bool;
// idle
[NewFile] (s=0) -> (s'=1) & (i'=1) & (srep'=0);
// next_frame
[aF] (s=1) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=0);
// wait_ack
[aB] (s=2) -> (s'=4) & (s_ab'=!s_ab);
[TO_Msg] (s=2) -> (s'=3);
[TO_Ack] (s=2) -> (s'=3);
// retransmit
[aF] (s=3) & (nrtr<MAX) -> (s'=2) & (fs'=(i=1)) & (ls'=(i=N)) & (bs'=s_ab) & (nrtr'=nrtr+1);
[] (s=3) & (nrtr=MAX) & (i<N) -> (s'=5) & (srep'=1);
[] (s=3) & (nrtr=MAX) & (i=N) -> (s'=5) & (srep'=2);
// success
[] (s=4) & (i<N) -> (s'=1) & (i'=i+1);
[] (s=4) & (i=N) -> (s'=0) & (srep'=3);
// error
[SyncWait] (s=5) -> (s'=6);
// wait sync
[SyncWait] (s=6) -> (s'=0) & (s_ab'=false);
endmodule
module receiver
r : [0..5];
// 0 new_file
// 1 fst_safe
// 2 frame_received
// 3 frame_reported
// 4 idle
// 5 resync
rrep : [0..4];
// 0 bottom
// 1 fst
// 2 inc
// 3 ok
// 4 nok
fr : bool;
lr : bool;
br : bool;
r_ab : bool;
recv : bool;
// new_file
[SyncWait] (r=0) -> (r'=0);
[aG] (r=0) -> (r'=1) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
// fst_safe_frame
[] (r=1) -> (r'=2) & (r_ab'=br);
// frame_received
[] (r=2) & (r_ab=br) & (fr=true) & (lr=false) -> (r'=3) & (rrep'=1);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=false) -> (r'=3) & (rrep'=2);
[] (r=2) & (r_ab=br) & (fr=false) & (lr=true) -> (r'=3) & (rrep'=3);
[aA] (r=2) & !(r_ab=br) -> (r'=4);
// frame_reported
[aA] (r=3) -> (r'=4) & (r_ab'=!r_ab);
// idle
[aG] (r=4) -> (r'=2) & (fr'=fs) & (lr'=ls) & (br'=bs) & (recv'=T);
[SyncWait] (r=4) & (ls=true) -> (r'=5);
[SyncWait] (r=4) & (ls=false) -> (r'=5) & (rrep'=4);
// resync
[SyncWait] (r=5) -> (r'=0) & (rrep'=0);
endmodule
module checker
[NewFile] (T=false) -> (T'=false);
[NewFile] (T=false) -> (T'=true);
endmodule
module channelK
k : [0..2];
// idle
[aF] (k=0) -> pK : (k'=1) + 1-pK : (k'=2);
// sending
[aG] (k=1) -> (k'=0);
// lost
[TO_Msg] (k=2) -> (k'=0);
endmodule
module channelL
l : [0..2];
// idle
[aA] (l=0) -> pL : (l'=1) + 1-pL : (l'=2);
// sending
[aB] (l=1) -> (l'=0);
// lost
[TO_Ack] (l=2) -> (l'=0);
endmodule

625
examples/pmdp/brp/brp_regions.txt

@ -0,0 +1,625 @@
0.000010<=pL<=0.040000, 0.000010<=pK<=0.040000;
0.000010<=pL<=0.040000, 0.040000<=pK<=0.080000;
0.000010<=pL<=0.040000, 0.080000<=pK<=0.120000;
0.000010<=pL<=0.040000, 0.120000<=pK<=0.160000;
0.000010<=pL<=0.040000, 0.160000<=pK<=0.200000;
0.000010<=pL<=0.040000, 0.200000<=pK<=0.240000;
0.000010<=pL<=0.040000, 0.240000<=pK<=0.280000;
0.000010<=pL<=0.040000, 0.280000<=pK<=0.320000;
0.000010<=pL<=0.040000, 0.320000<=pK<=0.360000;
0.000010<=pL<=0.040000, 0.360000<=pK<=0.400000;
0.000010<=pL<=0.040000, 0.400000<=pK<=0.440000;
0.000010<=pL<=0.040000, 0.440000<=pK<=0.480000;
0.000010<=pL<=0.040000, 0.480000<=pK<=0.520000;
0.000010<=pL<=0.040000, 0.520000<=pK<=0.560000;
0.000010<=pL<=0.040000, 0.560000<=pK<=0.600000;
0.000010<=pL<=0.040000, 0.600000<=pK<=0.640000;
0.000010<=pL<=0.040000, 0.640000<=pK<=0.680000;
0.000010<=pL<=0.040000, 0.680000<=pK<=0.720000;
0.000010<=pL<=0.040000, 0.720000<=pK<=0.760000;
0.000010<=pL<=0.040000, 0.760000<=pK<=0.800000;
0.000010<=pL<=0.040000, 0.800000<=pK<=0.840000;
0.000010<=pL<=0.040000, 0.840000<=pK<=0.880000;
0.000010<=pL<=0.040000, 0.880000<=pK<=0.920000;
0.000010<=pL<=0.040000, 0.920000<=pK<=0.960000;
0.000010<=pL<=0.040000, 0.960000<=pK<=0.999990;
0.040000<=pL<=0.080000, 0.000010<=pK<=0.040000;
0.040000<=pL<=0.080000, 0.040000<=pK<=0.080000;
0.040000<=pL<=0.080000, 0.080000<=pK<=0.120000;
0.040000<=pL<=0.080000, 0.120000<=pK<=0.160000;
0.040000<=pL<=0.080000, 0.160000<=pK<=0.200000;
0.040000<=pL<=0.080000, 0.200000<=pK<=0.240000;
0.040000<=pL<=0.080000, 0.240000<=pK<=0.280000;
0.040000<=pL<=0.080000, 0.280000<=pK<=0.320000;
0.040000<=pL<=0.080000, 0.320000<=pK<=0.360000;
0.040000<=pL<=0.080000, 0.360000<=pK<=0.400000;
0.040000<=pL<=0.080000, 0.400000<=pK<=0.440000;
0.040000<=pL<=0.080000, 0.440000<=pK<=0.480000;
0.040000<=pL<=0.080000, 0.480000<=pK<=0.520000;
0.040000<=pL<=0.080000, 0.520000<=pK<=0.560000;
0.040000<=pL<=0.080000, 0.560000<=pK<=0.600000;
0.040000<=pL<=0.080000, 0.600000<=pK<=0.640000;
0.040000<=pL<=0.080000, 0.640000<=pK<=0.680000;
0.040000<=pL<=0.080000, 0.680000<=pK<=0.720000;
0.040000<=pL<=0.080000, 0.720000<=pK<=0.760000;
0.040000<=pL<=0.080000, 0.760000<=pK<=0.800000;
0.040000<=pL<=0.080000, 0.800000<=pK<=0.840000;
0.040000<=pL<=0.080000, 0.840000<=pK<=0.880000;
0.040000<=pL<=0.080000, 0.880000<=pK<=0.920000;
0.040000<=pL<=0.080000, 0.920000<=pK<=0.960000;
0.040000<=pL<=0.080000, 0.960000<=pK<=0.999990;
0.080000<=pL<=0.120000, 0.000010<=pK<=0.040000;
0.080000<=pL<=0.120000, 0.040000<=pK<=0.080000;
0.080000<=pL<=0.120000, 0.080000<=pK<=0.120000;
0.080000<=pL<=0.120000, 0.120000<=pK<=0.160000;
0.080000<=pL<=0.120000, 0.160000<=pK<=0.200000;
0.080000<=pL<=0.120000, 0.200000<=pK<=0.240000;
0.080000<=pL<=0.120000, 0.240000<=pK<=0.280000;
0.080000<=pL<=0.120000, 0.280000<=pK<=0.320000;
0.080000<=pL<=0.120000, 0.320000<=pK<=0.360000;
0.080000<=pL<=0.120000, 0.360000<=pK<=0.400000;
0.080000<=pL<=0.120000, 0.400000<=pK<=0.440000;
0.080000<=pL<=0.120000, 0.440000<=pK<=0.480000;
0.080000<=pL<=0.120000, 0.480000<=pK<=0.520000;
0.080000<=pL<=0.120000, 0.520000<=pK<=0.560000;
0.080000<=pL<=0.120000, 0.560000<=pK<=0.600000;
0.080000<=pL<=0.120000, 0.600000<=pK<=0.640000;
0.080000<=pL<=0.120000, 0.640000<=pK<=0.680000;
0.080000<=pL<=0.120000, 0.680000<=pK<=0.720000;
0.080000<=pL<=0.120000, 0.720000<=pK<=0.760000;
0.080000<=pL<=0.120000, 0.760000<=pK<=0.800000;
0.080000<=pL<=0.120000, 0.800000<=pK<=0.840000;
0.080000<=pL<=0.120000, 0.840000<=pK<=0.880000;
0.080000<=pL<=0.120000, 0.880000<=pK<=0.920000;
0.080000<=pL<=0.120000, 0.920000<=pK<=0.960000;
0.080000<=pL<=0.120000, 0.960000<=pK<=0.999990;
0.120000<=pL<=0.160000, 0.000010<=pK<=0.040000;
0.120000<=pL<=0.160000, 0.040000<=pK<=0.080000;
0.120000<=pL<=0.160000, 0.080000<=pK<=0.120000;
0.120000<=pL<=0.160000, 0.120000<=pK<=0.160000;
0.120000<=pL<=0.160000, 0.160000<=pK<=0.200000;
0.120000<=pL<=0.160000, 0.200000<=pK<=0.240000;
0.120000<=pL<=0.160000, 0.240000<=pK<=0.280000;
0.120000<=pL<=0.160000, 0.280000<=pK<=0.320000;
0.120000<=pL<=0.160000, 0.320000<=pK<=0.360000;
0.120000<=pL<=0.160000, 0.360000<=pK<=0.400000;
0.120000<=pL<=0.160000, 0.400000<=pK<=0.440000;
0.120000<=pL<=0.160000, 0.440000<=pK<=0.480000;
0.120000<=pL<=0.160000, 0.480000<=pK<=0.520000;
0.120000<=pL<=0.160000, 0.520000<=pK<=0.560000;
0.120000<=pL<=0.160000, 0.560000<=pK<=0.600000;
0.120000<=pL<=0.160000, 0.600000<=pK<=0.640000;
0.120000<=pL<=0.160000, 0.640000<=pK<=0.680000;
0.120000<=pL<=0.160000, 0.680000<=pK<=0.720000;
0.120000<=pL<=0.160000, 0.720000<=pK<=0.760000;
0.120000<=pL<=0.160000, 0.760000<=pK<=0.800000;
0.120000<=pL<=0.160000, 0.800000<=pK<=0.840000;
0.120000<=pL<=0.160000, 0.840000<=pK<=0.880000;
0.120000<=pL<=0.160000, 0.880000<=pK<=0.920000;
0.120000<=pL<=0.160000, 0.920000<=pK<=0.960000;
0.120000<=pL<=0.160000, 0.960000<=pK<=0.999990;
0.160000<=pL<=0.200000, 0.000010<=pK<=0.040000;
0.160000<=pL<=0.200000, 0.040000<=pK<=0.080000;
0.160000<=pL<=0.200000, 0.080000<=pK<=0.120000;
0.160000<=pL<=0.200000, 0.120000<=pK<=0.160000;
0.160000<=pL<=0.200000, 0.160000<=pK<=0.200000;
0.160000<=pL<=0.200000, 0.200000<=pK<=0.240000;
0.160000<=pL<=0.200000, 0.240000<=pK<=0.280000;
0.160000<=pL<=0.200000, 0.280000<=pK<=0.320000;
0.160000<=pL<=0.200000, 0.320000<=pK<=0.360000;
0.160000<=pL<=0.200000, 0.360000<=pK<=0.400000;
0.160000<=pL<=0.200000, 0.400000<=pK<=0.440000;
0.160000<=pL<=0.200000, 0.440000<=pK<=0.480000;
0.160000<=pL<=0.200000, 0.480000<=pK<=0.520000;
0.160000<=pL<=0.200000, 0.520000<=pK<=0.560000;
0.160000<=pL<=0.200000, 0.560000<=pK<=0.600000;
0.160000<=pL<=0.200000, 0.600000<=pK<=0.640000;
0.160000<=pL<=0.200000, 0.640000<=pK<=0.680000;
0.160000<=pL<=0.200000, 0.680000<=pK<=0.720000;
0.160000<=pL<=0.200000, 0.720000<=pK<=0.760000;
0.160000<=pL<=0.200000, 0.760000<=pK<=0.800000;
0.160000<=pL<=0.200000, 0.800000<=pK<=0.840000;
0.160000<=pL<=0.200000, 0.840000<=pK<=0.880000;
0.160000<=pL<=0.200000, 0.880000<=pK<=0.920000;
0.160000<=pL<=0.200000, 0.920000<=pK<=0.960000;
0.160000<=pL<=0.200000, 0.960000<=pK<=0.999990;
0.200000<=pL<=0.240000, 0.000010<=pK<=0.040000;
0.200000<=pL<=0.240000, 0.040000<=pK<=0.080000;
0.200000<=pL<=0.240000, 0.080000<=pK<=0.120000;
0.200000<=pL<=0.240000, 0.120000<=pK<=0.160000;
0.200000<=pL<=0.240000, 0.160000<=pK<=0.200000;
0.200000<=pL<=0.240000, 0.200000<=pK<=0.240000;
0.200000<=pL<=0.240000, 0.240000<=pK<=0.280000;
0.200000<=pL<=0.240000, 0.280000<=pK<=0.320000;
0.200000<=pL<=0.240000, 0.320000<=pK<=0.360000;
0.200000<=pL<=0.240000, 0.360000<=pK<=0.400000;
0.200000<=pL<=0.240000, 0.400000<=pK<=0.440000;
0.200000<=pL<=0.240000, 0.440000<=pK<=0.480000;
0.200000<=pL<=0.240000, 0.480000<=pK<=0.520000;
0.200000<=pL<=0.240000, 0.520000<=pK<=0.560000;
0.200000<=pL<=0.240000, 0.560000<=pK<=0.600000;
0.200000<=pL<=0.240000, 0.600000<=pK<=0.640000;
0.200000<=pL<=0.240000, 0.640000<=pK<=0.680000;
0.200000<=pL<=0.240000, 0.680000<=pK<=0.720000;
0.200000<=pL<=0.240000, 0.720000<=pK<=0.760000;
0.200000<=pL<=0.240000, 0.760000<=pK<=0.800000;
0.200000<=pL<=0.240000, 0.800000<=pK<=0.840000;
0.200000<=pL<=0.240000, 0.840000<=pK<=0.880000;
0.200000<=pL<=0.240000, 0.880000<=pK<=0.920000;
0.200000<=pL<=0.240000, 0.920000<=pK<=0.960000;
0.200000<=pL<=0.240000, 0.960000<=pK<=0.999990;
0.240000<=pL<=0.280000, 0.000010<=pK<=0.040000;
0.240000<=pL<=0.280000, 0.040000<=pK<=0.080000;
0.240000<=pL<=0.280000, 0.080000<=pK<=0.120000;
0.240000<=pL<=0.280000, 0.120000<=pK<=0.160000;
0.240000<=pL<=0.280000, 0.160000<=pK<=0.200000;
0.240000<=pL<=0.280000, 0.200000<=pK<=0.240000;
0.240000<=pL<=0.280000, 0.240000<=pK<=0.280000;
0.240000<=pL<=0.280000, 0.280000<=pK<=0.320000;
0.240000<=pL<=0.280000, 0.320000<=pK<=0.360000;
0.240000<=pL<=0.280000, 0.360000<=pK<=0.400000;
0.240000<=pL<=0.280000, 0.400000<=pK<=0.440000;
0.240000<=pL<=0.280000, 0.440000<=pK<=0.480000;
0.240000<=pL<=0.280000, 0.480000<=pK<=0.520000;
0.240000<=pL<=0.280000, 0.520000<=pK<=0.560000;
0.240000<=pL<=0.280000, 0.560000<=pK<=0.600000;
0.240000<=pL<=0.280000, 0.600000<=pK<=0.640000;
0.240000<=pL<=0.280000, 0.640000<=pK<=0.680000;
0.240000<=pL<=0.280000, 0.680000<=pK<=0.720000;
0.240000<=pL<=0.280000, 0.720000<=pK<=0.760000;
0.240000<=pL<=0.280000, 0.760000<=pK<=0.800000;
0.240000<=pL<=0.280000, 0.800000<=pK<=0.840000;
0.240000<=pL<=0.280000, 0.840000<=pK<=0.880000;
0.240000<=pL<=0.280000, 0.880000<=pK<=0.920000;
0.240000<=pL<=0.280000, 0.920000<=pK<=0.960000;
0.240000<=pL<=0.280000, 0.960000<=pK<=0.999990;
0.280000<=pL<=0.320000, 0.000010<=pK<=0.040000;
0.280000<=pL<=0.320000, 0.040000<=pK<=0.080000;
0.280000<=pL<=0.320000, 0.080000<=pK<=0.120000;
0.280000<=pL<=0.320000, 0.120000<=pK<=0.160000;
0.280000<=pL<=0.320000, 0.160000<=pK<=0.200000;
0.280000<=pL<=0.320000, 0.200000<=pK<=0.240000;
0.280000<=pL<=0.320000, 0.240000<=pK<=0.280000;
0.280000<=pL<=0.320000, 0.280000<=pK<=0.320000;
0.280000<=pL<=0.320000, 0.320000<=pK<=0.360000;
0.280000<=pL<=0.320000, 0.360000<=pK<=0.400000;
0.280000<=pL<=0.320000, 0.400000<=pK<=0.440000;
0.280000<=pL<=0.320000, 0.440000<=pK<=0.480000;
0.280000<=pL<=0.320000, 0.480000<=pK<=0.520000;
0.280000<=pL<=0.320000, 0.520000<=pK<=0.560000;
0.280000<=pL<=0.320000, 0.560000<=pK<=0.600000;
0.280000<=pL<=0.320000, 0.600000<=pK<=0.640000;
0.280000<=pL<=0.320000, 0.640000<=pK<=0.680000;
0.280000<=pL<=0.320000, 0.680000<=pK<=0.720000;
0.280000<=pL<=0.320000, 0.720000<=pK<=0.760000;
0.280000<=pL<=0.320000, 0.760000<=pK<=0.800000;
0.280000<=pL<=0.320000, 0.800000<=pK<=0.840000;
0.280000<=pL<=0.320000, 0.840000<=pK<=0.880000;
0.280000<=pL<=0.320000, 0.880000<=pK<=0.920000;
0.280000<=pL<=0.320000, 0.920000<=pK<=0.960000;
0.280000<=pL<=0.320000, 0.960000<=pK<=0.999990;
0.320000<=pL<=0.360000, 0.000010<=pK<=0.040000;
0.320000<=pL<=0.360000, 0.040000<=pK<=0.080000;
0.320000<=pL<=0.360000, 0.080000<=pK<=0.120000;
0.320000<=pL<=0.360000, 0.120000<=pK<=0.160000;
0.320000<=pL<=0.360000, 0.160000<=pK<=0.200000;
0.320000<=pL<=0.360000, 0.200000<=pK<=0.240000;
0.320000<=pL<=0.360000, 0.240000<=pK<=0.280000;
0.320000<=pL<=0.360000, 0.280000<=pK<=0.320000;
0.320000<=pL<=0.360000, 0.320000<=pK<=0.360000;
0.320000<=pL<=0.360000, 0.360000<=pK<=0.400000;
0.320000<=pL<=0.360000, 0.400000<=pK<=0.440000;
0.320000<=pL<=0.360000, 0.440000<=pK<=0.480000;
0.320000<=pL<=0.360000, 0.480000<=pK<=0.520000;
0.320000<=pL<=0.360000, 0.520000<=pK<=0.560000;
0.320000<=pL<=0.360000, 0.560000<=pK<=0.600000;
0.320000<=pL<=0.360000, 0.600000<=pK<=0.640000;
0.320000<=pL<=0.360000, 0.640000<=pK<=0.680000;
0.320000<=pL<=0.360000, 0.680000<=pK<=0.720000;
0.320000<=pL<=0.360000, 0.720000<=pK<=0.760000;
0.320000<=pL<=0.360000, 0.760000<=pK<=0.800000;
0.320000<=pL<=0.360000, 0.800000<=pK<=0.840000;
0.320000<=pL<=0.360000, 0.840000<=pK<=0.880000;
0.320000<=pL<=0.360000, 0.880000<=pK<=0.920000;
0.320000<=pL<=0.360000, 0.920000<=pK<=0.960000;
0.320000<=pL<=0.360000, 0.960000<=pK<=0.999990;
0.360000<=pL<=0.400000, 0.000010<=pK<=0.040000;
0.360000<=pL<=0.400000, 0.040000<=pK<=0.080000;
0.360000<=pL<=0.400000, 0.080000<=pK<=0.120000;
0.360000<=pL<=0.400000, 0.120000<=pK<=0.160000;
0.360000<=pL<=0.400000, 0.160000<=pK<=0.200000;
0.360000<=pL<=0.400000, 0.200000<=pK<=0.240000;
0.360000<=pL<=0.400000, 0.240000<=pK<=0.280000;
0.360000<=pL<=0.400000, 0.280000<=pK<=0.320000;
0.360000<=pL<=0.400000, 0.320000<=pK<=0.360000;
0.360000<=pL<=0.400000, 0.360000<=pK<=0.400000;
0.360000<=pL<=0.400000, 0.400000<=pK<=0.440000;
0.360000<=pL<=0.400000, 0.440000<=pK<=0.480000;
0.360000<=pL<=0.400000, 0.480000<=pK<=0.520000;
0.360000<=pL<=0.400000, 0.520000<=pK<=0.560000;
0.360000<=pL<=0.400000, 0.560000<=pK<=0.600000;
0.360000<=pL<=0.400000, 0.600000<=pK<=0.640000;
0.360000<=pL<=0.400000, 0.640000<=pK<=0.680000;
0.360000<=pL<=0.400000, 0.680000<=pK<=0.720000;
0.360000<=pL<=0.400000, 0.720000<=pK<=0.760000;
0.360000<=pL<=0.400000, 0.760000<=pK<=0.800000;
0.360000<=pL<=0.400000, 0.800000<=pK<=0.840000;
0.360000<=pL<=0.400000, 0.840000<=pK<=0.880000;
0.360000<=pL<=0.400000, 0.880000<=pK<=0.920000;
0.360000<=pL<=0.400000, 0.920000<=pK<=0.960000;
0.360000<=pL<=0.400000, 0.960000<=pK<=0.999990;
0.400000<=pL<=0.440000, 0.000010<=pK<=0.040000;
0.400000<=pL<=0.440000, 0.040000<=pK<=0.080000;
0.400000<=pL<=0.440000, 0.080000<=pK<=0.120000;
0.400000<=pL<=0.440000, 0.120000<=pK<=0.160000;
0.400000<=pL<=0.440000, 0.160000<=pK<=0.200000;
0.400000<=pL<=0.440000, 0.200000<=pK<=0.240000;
0.400000<=pL<=0.440000, 0.240000<=pK<=0.280000;
0.400000<=pL<=0.440000, 0.280000<=pK<=0.320000;
0.400000<=pL<=0.440000, 0.320000<=pK<=0.360000;
0.400000<=pL<=0.440000, 0.360000<=pK<=0.400000;
0.400000<=pL<=0.440000, 0.400000<=pK<=0.440000;
0.400000<=pL<=0.440000, 0.440000<=pK<=0.480000;
0.400000<=pL<=0.440000, 0.480000<=pK<=0.520000;
0.400000<=pL<=0.440000, 0.520000<=pK<=0.560000;
0.400000<=pL<=0.440000, 0.560000<=pK<=0.600000;
0.400000<=pL<=0.440000, 0.600000<=pK<=0.640000;
0.400000<=pL<=0.440000, 0.640000<=pK<=0.680000;
0.400000<=pL<=0.440000, 0.680000<=pK<=0.720000;
0.400000<=pL<=0.440000, 0.720000<=pK<=0.760000;
0.400000<=pL<=0.440000, 0.760000<=pK<=0.800000;
0.400000<=pL<=0.440000, 0.800000<=pK<=0.840000;
0.400000<=pL<=0.440000, 0.840000<=pK<=0.880000;
0.400000<=pL<=0.440000, 0.880000<=pK<=0.920000;
0.400000<=pL<=0.440000, 0.920000<=pK<=0.960000;
0.400000<=pL<=0.440000, 0.960000<=pK<=0.999990;
0.440000<=pL<=0.480000, 0.000010<=pK<=0.040000;
0.440000<=pL<=0.480000, 0.040000<=pK<=0.080000;
0.440000<=pL<=0.480000, 0.080000<=pK<=0.120000;
0.440000<=pL<=0.480000, 0.120000<=pK<=0.160000;
0.440000<=pL<=0.480000, 0.160000<=pK<=0.200000;
0.440000<=pL<=0.480000, 0.200000<=pK<=0.240000;
0.440000<=pL<=0.480000, 0.240000<=pK<=0.280000;
0.440000<=pL<=0.480000, 0.280000<=pK<=0.320000;
0.440000<=pL<=0.480000, 0.320000<=pK<=0.360000;
0.440000<=pL<=0.480000, 0.360000<=pK<=0.400000;
0.440000<=pL<=0.480000, 0.400000<=pK<=0.440000;
0.440000<=pL<=0.480000, 0.440000<=pK<=0.480000;
0.440000<=pL<=0.480000, 0.480000<=pK<=0.520000;
0.440000<=pL<=0.480000, 0.520000<=pK<=0.560000;
0.440000<=pL<=0.480000, 0.560000<=pK<=0.600000;
0.440000<=pL<=0.480000, 0.600000<=pK<=0.640000;
0.440000<=pL<=0.480000, 0.640000<=pK<=0.680000;
0.440000<=pL<=0.480000, 0.680000<=pK<=0.720000;
0.440000<=pL<=0.480000, 0.720000<=pK<=0.760000;
0.440000<=pL<=0.480000, 0.760000<=pK<=0.800000;
0.440000<=pL<=0.480000, 0.800000<=pK<=0.840000;
0.440000<=pL<=0.480000, 0.840000<=pK<=0.880000;
0.440000<=pL<=0.480000, 0.880000<=pK<=0.920000;
0.440000<=pL<=0.480000, 0.920000<=pK<=0.960000;
0.440000<=pL<=0.480000, 0.960000<=pK<=0.999990;
0.480000<=pL<=0.520000, 0.000010<=pK<=0.040000;
0.480000<=pL<=0.520000, 0.040000<=pK<=0.080000;
0.480000<=pL<=0.520000, 0.080000<=pK<=0.120000;
0.480000<=pL<=0.520000, 0.120000<=pK<=0.160000;
0.480000<=pL<=0.520000, 0.160000<=pK<=0.200000;
0.480000<=pL<=0.520000, 0.200000<=pK<=0.240000;
0.480000<=pL<=0.520000, 0.240000<=pK<=0.280000;
0.480000<=pL<=0.520000, 0.280000<=pK<=0.320000;
0.480000<=pL<=0.520000, 0.320000<=pK<=0.360000;
0.480000<=pL<=0.520000, 0.360000<=pK<=0.400000;
0.480000<=pL<=0.520000, 0.400000<=pK<=0.440000;
0.480000<=pL<=0.520000, 0.440000<=pK<=0.480000;
0.480000<=pL<=0.520000, 0.480000<=pK<=0.520000;
0.480000<=pL<=0.520000, 0.520000<=pK<=0.560000;
0.480000<=pL<=0.520000, 0.560000<=pK<=0.600000;
0.480000<=pL<=0.520000, 0.600000<=pK<=0.640000;
0.480000<=pL<=0.520000, 0.640000<=pK<=0.680000;
0.480000<=pL<=0.520000, 0.680000<=pK<=0.720000;
0.480000<=pL<=0.520000, 0.720000<=pK<=0.760000;
0.480000<=pL<=0.520000, 0.760000<=pK<=0.800000;
0.480000<=pL<=0.520000, 0.800000<=pK<=0.840000;
0.480000<=pL<=0.520000, 0.840000<=pK<=0.880000;
0.480000<=pL<=0.520000, 0.880000<=pK<=0.920000;
0.480000<=pL<=0.520000, 0.920000<=pK<=0.960000;
0.480000<=pL<=0.520000, 0.960000<=pK<=0.999990;
0.520000<=pL<=0.560000, 0.000010<=pK<=0.040000;
0.520000<=pL<=0.560000, 0.040000<=pK<=0.080000;
0.520000<=pL<=0.560000, 0.080000<=pK<=0.120000;
0.520000<=pL<=0.560000, 0.120000<=pK<=0.160000;
0.520000<=pL<=0.560000, 0.160000<=pK<=0.200000;
0.520000<=pL<=0.560000, 0.200000<=pK<=0.240000;
0.520000<=pL<=0.560000, 0.240000<=pK<=0.280000;
0.520000<=pL<=0.560000, 0.280000<=pK<=0.320000;
0.520000<=pL<=0.560000, 0.320000<=pK<=0.360000;
0.520000<=pL<=0.560000, 0.360000<=pK<=0.400000;
0.520000<=pL<=0.560000, 0.400000<=pK<=0.440000;
0.520000<=pL<=0.560000, 0.440000<=pK<=0.480000;
0.520000<=pL<=0.560000, 0.480000<=pK<=0.520000;
0.520000<=pL<=0.560000, 0.520000<=pK<=0.560000;
0.520000<=pL<=0.560000, 0.560000<=pK<=0.600000;
0.520000<=pL<=0.560000, 0.600000<=pK<=0.640000;
0.520000<=pL<=0.560000, 0.640000<=pK<=0.680000;
0.520000<=pL<=0.560000, 0.680000<=pK<=0.720000;
0.520000<=pL<=0.560000, 0.720000<=pK<=0.760000;
0.520000<=pL<=0.560000, 0.760000<=pK<=0.800000;
0.520000<=pL<=0.560000, 0.800000<=pK<=0.840000;
0.520000<=pL<=0.560000, 0.840000<=pK<=0.880000;
0.520000<=pL<=0.560000, 0.880000<=pK<=0.920000;
0.520000<=pL<=0.560000, 0.920000<=pK<=0.960000;
0.520000<=pL<=0.560000, 0.960000<=pK<=0.999990;
0.560000<=pL<=0.600000, 0.000010<=pK<=0.040000;
0.560000<=pL<=0.600000, 0.040000<=pK<=0.080000;
0.560000<=pL<=0.600000, 0.080000<=pK<=0.120000;
0.560000<=pL<=0.600000, 0.120000<=pK<=0.160000;
0.560000<=pL<=0.600000, 0.160000<=pK<=0.200000;
0.560000<=pL<=0.600000, 0.200000<=pK<=0.240000;
0.560000<=pL<=0.600000, 0.240000<=pK<=0.280000;
0.560000<=pL<=0.600000, 0.280000<=pK<=0.320000;
0.560000<=pL<=0.600000, 0.320000<=pK<=0.360000;
0.560000<=pL<=0.600000, 0.360000<=pK<=0.400000;
0.560000<=pL<=0.600000, 0.400000<=pK<=0.440000;
0.560000<=pL<=0.600000, 0.440000<=pK<=0.480000;
0.560000<=pL<=0.600000, 0.480000<=pK<=0.520000;
0.560000<=pL<=0.600000, 0.520000<=pK<=0.560000;
0.560000<=pL<=0.600000, 0.560000<=pK<=0.600000;
0.560000<=pL<=0.600000, 0.600000<=pK<=0.640000;
0.560000<=pL<=0.600000, 0.640000<=pK<=0.680000;
0.560000<=pL<=0.600000, 0.680000<=pK<=0.720000;
0.560000<=pL<=0.600000, 0.720000<=pK<=0.760000;
0.560000<=pL<=0.600000, 0.760000<=pK<=0.800000;
0.560000<=pL<=0.600000, 0.800000<=pK<=0.840000;
0.560000<=pL<=0.600000, 0.840000<=pK<=0.880000;
0.560000<=pL<=0.600000, 0.880000<=pK<=0.920000;
0.560000<=pL<=0.600000, 0.920000<=pK<=0.960000;
0.560000<=pL<=0.600000, 0.960000<=pK<=0.999990;
0.600000<=pL<=0.640000, 0.000010<=pK<=0.040000;
0.600000<=pL<=0.640000, 0.040000<=pK<=0.080000;
0.600000<=pL<=0.640000, 0.080000<=pK<=0.120000;
0.600000<=pL<=0.640000, 0.120000<=pK<=0.160000;
0.600000<=pL<=0.640000, 0.160000<=pK<=0.200000;
0.600000<=pL<=0.640000, 0.200000<=pK<=0.240000;
0.600000<=pL<=0.640000, 0.240000<=pK<=0.280000;
0.600000<=pL<=0.640000, 0.280000<=pK<=0.320000;
0.600000<=pL<=0.640000, 0.320000<=pK<=0.360000;
0.600000<=pL<=0.640000, 0.360000<=pK<=0.400000;
0.600000<=pL<=0.640000, 0.400000<=pK<=0.440000;
0.600000<=pL<=0.640000, 0.440000<=pK<=0.480000;
0.600000<=pL<=0.640000, 0.480000<=pK<=0.520000;
0.600000<=pL<=0.640000, 0.520000<=pK<=0.560000;
0.600000<=pL<=0.640000, 0.560000<=pK<=0.600000;
0.600000<=pL<=0.640000, 0.600000<=pK<=0.640000;
0.600000<=pL<=0.640000, 0.640000<=pK<=0.680000;
0.600000<=pL<=0.640000, 0.680000<=pK<=0.720000;
0.600000<=pL<=0.640000, 0.720000<=pK<=0.760000;
0.600000<=pL<=0.640000, 0.760000<=pK<=0.800000;
0.600000<=pL<=0.640000, 0.800000<=pK<=0.840000;
0.600000<=pL<=0.640000, 0.840000<=pK<=0.880000;
0.600000<=pL<=0.640000, 0.880000<=pK<=0.920000;
0.600000<=pL<=0.640000, 0.920000<=pK<=0.960000;
0.600000<=pL<=0.640000, 0.960000<=pK<=0.999990;
0.640000<=pL<=0.680000, 0.000010<=pK<=0.040000;
0.640000<=pL<=0.680000, 0.040000<=pK<=0.080000;
0.640000<=pL<=0.680000, 0.080000<=pK<=0.120000;
0.640000<=pL<=0.680000, 0.120000<=pK<=0.160000;
0.640000<=pL<=0.680000, 0.160000<=pK<=0.200000;
0.640000<=pL<=0.680000, 0.200000<=pK<=0.240000;
0.640000<=pL<=0.680000, 0.240000<=pK<=0.280000;
0.640000<=pL<=0.680000, 0.280000<=pK<=0.320000;
0.640000<=pL<=0.680000, 0.320000<=pK<=0.360000;
0.640000<=pL<=0.680000, 0.360000<=pK<=0.400000;
0.640000<=pL<=0.680000, 0.400000<=pK<=0.440000;
0.640000<=pL<=0.680000, 0.440000<=pK<=0.480000;
0.640000<=pL<=0.680000, 0.480000<=pK<=0.520000;
0.640000<=pL<=0.680000, 0.520000<=pK<=0.560000;
0.640000<=pL<=0.680000, 0.560000<=pK<=0.600000;
0.640000<=pL<=0.680000, 0.600000<=pK<=0.640000;
0.640000<=pL<=0.680000, 0.640000<=pK<=0.680000;
0.640000<=pL<=0.680000, 0.680000<=pK<=0.720000;
0.640000<=pL<=0.680000, 0.720000<=pK<=0.760000;
0.640000<=pL<=0.680000, 0.760000<=pK<=0.800000;
0.640000<=pL<=0.680000, 0.800000<=pK<=0.840000;
0.640000<=pL<=0.680000, 0.840000<=pK<=0.880000;
0.640000<=pL<=0.680000, 0.880000<=pK<=0.920000;
0.640000<=pL<=0.680000, 0.920000<=pK<=0.960000;
0.640000<=pL<=0.680000, 0.960000<=pK<=0.999990;
0.680000<=pL<=0.720000, 0.000010<=pK<=0.040000;
0.680000<=pL<=0.720000, 0.040000<=pK<=0.080000;
0.680000<=pL<=0.720000, 0.080000<=pK<=0.120000;
0.680000<=pL<=0.720000, 0.120000<=pK<=0.160000;
0.680000<=pL<=0.720000, 0.160000<=pK<=0.200000;
0.680000<=pL<=0.720000, 0.200000<=pK<=0.240000;
0.680000<=pL<=0.720000, 0.240000<=pK<=0.280000;
0.680000<=pL<=0.720000, 0.280000<=pK<=0.320000;
0.680000<=pL<=0.720000, 0.320000<=pK<=0.360000;
0.680000<=pL<=0.720000, 0.360000<=pK<=0.400000;
0.680000<=pL<=0.720000, 0.400000<=pK<=0.440000;
0.680000<=pL<=0.720000, 0.440000<=pK<=0.480000;
0.680000<=pL<=0.720000, 0.480000<=pK<=0.520000;
0.680000<=pL<=0.720000, 0.520000<=pK<=0.560000;
0.680000<=pL<=0.720000, 0.560000<=pK<=0.600000;
0.680000<=pL<=0.720000, 0.600000<=pK<=0.640000;
0.680000<=pL<=0.720000, 0.640000<=pK<=0.680000;
0.680000<=pL<=0.720000, 0.680000<=pK<=0.720000;
0.680000<=pL<=0.720000, 0.720000<=pK<=0.760000;
0.680000<=pL<=0.720000, 0.760000<=pK<=0.800000;
0.680000<=pL<=0.720000, 0.800000<=pK<=0.840000;
0.680000<=pL<=0.720000, 0.840000<=pK<=0.880000;
0.680000<=pL<=0.720000, 0.880000<=pK<=0.920000;
0.680000<=pL<=0.720000, 0.920000<=pK<=0.960000;
0.680000<=pL<=0.720000, 0.960000<=pK<=0.999990;
0.720000<=pL<=0.760000, 0.000010<=pK<=0.040000;
0.720000<=pL<=0.760000, 0.040000<=pK<=0.080000;
0.720000<=pL<=0.760000, 0.080000<=pK<=0.120000;
0.720000<=pL<=0.760000, 0.120000<=pK<=0.160000;
0.720000<=pL<=0.760000, 0.160000<=pK<=0.200000;
0.720000<=pL<=0.760000, 0.200000<=pK<=0.240000;
0.720000<=pL<=0.760000, 0.240000<=pK<=0.280000;
0.720000<=pL<=0.760000, 0.280000<=pK<=0.320000;
0.720000<=pL<=0.760000, 0.320000<=pK<=0.360000;
0.720000<=pL<=0.760000, 0.360000<=pK<=0.400000;
0.720000<=pL<=0.760000, 0.400000<=pK<=0.440000;
0.720000<=pL<=0.760000, 0.440000<=pK<=0.480000;
0.720000<=pL<=0.760000, 0.480000<=pK<=0.520000;
0.720000<=pL<=0.760000, 0.520000<=pK<=0.560000;
0.720000<=pL<=0.760000, 0.560000<=pK<=0.600000;
0.720000<=pL<=0.760000, 0.600000<=pK<=0.640000;
0.720000<=pL<=0.760000, 0.640000<=pK<=0.680000;
0.720000<=pL<=0.760000, 0.680000<=pK<=0.720000;
0.720000<=pL<=0.760000, 0.720000<=pK<=0.760000;
0.720000<=pL<=0.760000, 0.760000<=pK<=0.800000;
0.720000<=pL<=0.760000, 0.800000<=pK<=0.840000;
0.720000<=pL<=0.760000, 0.840000<=pK<=0.880000;
0.720000<=pL<=0.760000, 0.880000<=pK<=0.920000;
0.720000<=pL<=0.760000, 0.920000<=pK<=0.960000;
0.720000<=pL<=0.760000, 0.960000<=pK<=0.999990;
0.760000<=pL<=0.800000, 0.000010<=pK<=0.040000;
0.760000<=pL<=0.800000, 0.040000<=pK<=0.080000;
0.760000<=pL<=0.800000, 0.080000<=pK<=0.120000;
0.760000<=pL<=0.800000, 0.120000<=pK<=0.160000;
0.760000<=pL<=0.800000, 0.160000<=pK<=0.200000;
0.760000<=pL<=0.800000, 0.200000<=pK<=0.240000;
0.760000<=pL<=0.800000, 0.240000<=pK<=0.280000;
0.760000<=pL<=0.800000, 0.280000<=pK<=0.320000;
0.760000<=pL<=0.800000, 0.320000<=pK<=0.360000;
0.760000<=pL<=0.800000, 0.360000<=pK<=0.400000;
0.760000<=pL<=0.800000, 0.400000<=pK<=0.440000;
0.760000<=pL<=0.800000, 0.440000<=pK<=0.480000;
0.760000<=pL<=0.800000, 0.480000<=pK<=0.520000;
0.760000<=pL<=0.800000, 0.520000<=pK<=0.560000;
0.760000<=pL<=0.800000, 0.560000<=pK<=0.600000;
0.760000<=pL<=0.800000, 0.600000<=pK<=0.640000;
0.760000<=pL<=0.800000, 0.640000<=pK<=0.680000;
0.760000<=pL<=0.800000, 0.680000<=pK<=0.720000;
0.760000<=pL<=0.800000, 0.720000<=pK<=0.760000;
0.760000<=pL<=0.800000, 0.760000<=pK<=0.800000;
0.760000<=pL<=0.800000, 0.800000<=pK<=0.840000;
0.760000<=pL<=0.800000, 0.840000<=pK<=0.880000;
0.760000<=pL<=0.800000, 0.880000<=pK<=0.920000;
0.760000<=pL<=0.800000, 0.920000<=pK<=0.960000;
0.760000<=pL<=0.800000, 0.960000<=pK<=0.999990;
0.800000<=pL<=0.840000, 0.000010<=pK<=0.040000;
0.800000<=pL<=0.840000, 0.040000<=pK<=0.080000;
0.800000<=pL<=0.840000, 0.080000<=pK<=0.120000;
0.800000<=pL<=0.840000, 0.120000<=pK<=0.160000;
0.800000<=pL<=0.840000, 0.160000<=pK<=0.200000;
0.800000<=pL<=0.840000, 0.200000<=pK<=0.240000;
0.800000<=pL<=0.840000, 0.240000<=pK<=0.280000;
0.800000<=pL<=0.840000, 0.280000<=pK<=0.320000;
0.800000<=pL<=0.840000, 0.320000<=pK<=0.360000;
0.800000<=pL<=0.840000, 0.360000<=pK<=0.400000;
0.800000<=pL<=0.840000, 0.400000<=pK<=0.440000;
0.800000<=pL<=0.840000, 0.440000<=pK<=0.480000;
0.800000<=pL<=0.840000, 0.480000<=pK<=0.520000;
0.800000<=pL<=0.840000, 0.520000<=pK<=0.560000;
0.800000<=pL<=0.840000, 0.560000<=pK<=0.600000;
0.800000<=pL<=0.840000, 0.600000<=pK<=0.640000;
0.800000<=pL<=0.840000, 0.640000<=pK<=0.680000;
0.800000<=pL<=0.840000, 0.680000<=pK<=0.720000;
0.800000<=pL<=0.840000, 0.720000<=pK<=0.760000;
0.800000<=pL<=0.840000, 0.760000<=pK<=0.800000;
0.800000<=pL<=0.840000, 0.800000<=pK<=0.840000;
0.800000<=pL<=0.840000, 0.840000<=pK<=0.880000;
0.800000<=pL<=0.840000, 0.880000<=pK<=0.920000;
0.800000<=pL<=0.840000, 0.920000<=pK<=0.960000;
0.800000<=pL<=0.840000, 0.960000<=pK<=0.999990;
0.840000<=pL<=0.880000, 0.000010<=pK<=0.040000;
0.840000<=pL<=0.880000, 0.040000<=pK<=0.080000;
0.840000<=pL<=0.880000, 0.080000<=pK<=0.120000;
0.840000<=pL<=0.880000, 0.120000<=pK<=0.160000;
0.840000<=pL<=0.880000, 0.160000<=pK<=0.200000;
0.840000<=pL<=0.880000, 0.200000<=pK<=0.240000;
0.840000<=pL<=0.880000, 0.240000<=pK<=0.280000;
0.840000<=pL<=0.880000, 0.280000<=pK<=0.320000;
0.840000<=pL<=0.880000, 0.320000<=pK<=0.360000;
0.840000<=pL<=0.880000, 0.360000<=pK<=0.400000;
0.840000<=pL<=0.880000, 0.400000<=pK<=0.440000;
0.840000<=pL<=0.880000, 0.440000<=pK<=0.480000;
0.840000<=pL<=0.880000, 0.480000<=pK<=0.520000;
0.840000<=pL<=0.880000, 0.520000<=pK<=0.560000;
0.840000<=pL<=0.880000, 0.560000<=pK<=0.600000;
0.840000<=pL<=0.880000, 0.600000<=pK<=0.640000;
0.840000<=pL<=0.880000, 0.640000<=pK<=0.680000;
0.840000<=pL<=0.880000, 0.680000<=pK<=0.720000;
0.840000<=pL<=0.880000, 0.720000<=pK<=0.760000;
0.840000<=pL<=0.880000, 0.760000<=pK<=0.800000;
0.840000<=pL<=0.880000, 0.800000<=pK<=0.840000;
0.840000<=pL<=0.880000, 0.840000<=pK<=0.880000;
0.840000<=pL<=0.880000, 0.880000<=pK<=0.920000;
0.840000<=pL<=0.880000, 0.920000<=pK<=0.960000;
0.840000<=pL<=0.880000, 0.960000<=pK<=0.999990;
0.880000<=pL<=0.920000, 0.000010<=pK<=0.040000;
0.880000<=pL<=0.920000, 0.040000<=pK<=0.080000;
0.880000<=pL<=0.920000, 0.080000<=pK<=0.120000;
0.880000<=pL<=0.920000, 0.120000<=pK<=0.160000;
0.880000<=pL<=0.920000, 0.160000<=pK<=0.200000;
0.880000<=pL<=0.920000, 0.200000<=pK<=0.240000;
0.880000<=pL<=0.920000, 0.240000<=pK<=0.280000;
0.880000<=pL<=0.920000, 0.280000<=pK<=0.320000;
0.880000<=pL<=0.920000, 0.320000<=pK<=0.360000;
0.880000<=pL<=0.920000, 0.360000<=pK<=0.400000;
0.880000<=pL<=0.920000, 0.400000<=pK<=0.440000;
0.880000<=pL<=0.920000, 0.440000<=pK<=0.480000;
0.880000<=pL<=0.920000, 0.480000<=pK<=0.520000;
0.880000<=pL<=0.920000, 0.520000<=pK<=0.560000;
0.880000<=pL<=0.920000, 0.560000<=pK<=0.600000;
0.880000<=pL<=0.920000, 0.600000<=pK<=0.640000;
0.880000<=pL<=0.920000, 0.640000<=pK<=0.680000;
0.880000<=pL<=0.920000, 0.680000<=pK<=0.720000;
0.880000<=pL<=0.920000, 0.720000<=pK<=0.760000;
0.880000<=pL<=0.920000, 0.760000<=pK<=0.800000;
0.880000<=pL<=0.920000, 0.800000<=pK<=0.840000;
0.880000<=pL<=0.920000, 0.840000<=pK<=0.880000;
0.880000<=pL<=0.920000, 0.880000<=pK<=0.920000;
0.880000<=pL<=0.920000, 0.920000<=pK<=0.960000;
0.880000<=pL<=0.920000, 0.960000<=pK<=0.999990;
0.920000<=pL<=0.960000, 0.000010<=pK<=0.040000;
0.920000<=pL<=0.960000, 0.040000<=pK<=0.080000;
0.920000<=pL<=0.960000, 0.080000<=pK<=0.120000;
0.920000<=pL<=0.960000, 0.120000<=pK<=0.160000;
0.920000<=pL<=0.960000, 0.160000<=pK<=0.200000;
0.920000<=pL<=0.960000, 0.200000<=pK<=0.240000;
0.920000<=pL<=0.960000, 0.240000<=pK<=0.280000;
0.920000<=pL<=0.960000, 0.280000<=pK<=0.320000;
0.920000<=pL<=0.960000, 0.320000<=pK<=0.360000;
0.920000<=pL<=0.960000, 0.360000<=pK<=0.400000;
0.920000<=pL<=0.960000, 0.400000<=pK<=0.440000;
0.920000<=pL<=0.960000, 0.440000<=pK<=0.480000;
0.920000<=pL<=0.960000, 0.480000<=pK<=0.520000;
0.920000<=pL<=0.960000, 0.520000<=pK<=0.560000;
0.920000<=pL<=0.960000, 0.560000<=pK<=0.600000;
0.920000<=pL<=0.960000, 0.600000<=pK<=0.640000;
0.920000<=pL<=0.960000, 0.640000<=pK<=0.680000;
0.920000<=pL<=0.960000, 0.680000<=pK<=0.720000;
0.920000<=pL<=0.960000, 0.720000<=pK<=0.760000;
0.920000<=pL<=0.960000, 0.760000<=pK<=0.800000;
0.920000<=pL<=0.960000, 0.800000<=pK<=0.840000;
0.920000<=pL<=0.960000, 0.840000<=pK<=0.880000;
0.920000<=pL<=0.960000, 0.880000<=pK<=0.920000;
0.920000<=pL<=0.960000, 0.920000<=pK<=0.960000;
0.920000<=pL<=0.960000, 0.960000<=pK<=0.999990;
0.960000<=pL<=0.999990, 0.000010<=pK<=0.040000;
0.960000<=pL<=0.999990, 0.040000<=pK<=0.080000;
0.960000<=pL<=0.999990, 0.080000<=pK<=0.120000;
0.960000<=pL<=0.999990, 0.120000<=pK<=0.160000;
0.960000<=pL<=0.999990, 0.160000<=pK<=0.200000;
0.960000<=pL<=0.999990, 0.200000<=pK<=0.240000;
0.960000<=pL<=0.999990, 0.240000<=pK<=0.280000;
0.960000<=pL<=0.999990, 0.280000<=pK<=0.320000;
0.960000<=pL<=0.999990, 0.320000<=pK<=0.360000;
0.960000<=pL<=0.999990, 0.360000<=pK<=0.400000;
0.960000<=pL<=0.999990, 0.400000<=pK<=0.440000;
0.960000<=pL<=0.999990, 0.440000<=pK<=0.480000;
0.960000<=pL<=0.999990, 0.480000<=pK<=0.520000;
0.960000<=pL<=0.999990, 0.520000<=pK<=0.560000;
0.960000<=pL<=0.999990, 0.560000<=pK<=0.600000;
0.960000<=pL<=0.999990, 0.600000<=pK<=0.640000;
0.960000<=pL<=0.999990, 0.640000<=pK<=0.680000;
0.960000<=pL<=0.999990, 0.680000<=pK<=0.720000;
0.960000<=pL<=0.999990, 0.720000<=pK<=0.760000;
0.960000<=pL<=0.999990, 0.760000<=pK<=0.800000;
0.960000<=pL<=0.999990, 0.800000<=pK<=0.840000;
0.960000<=pL<=0.999990, 0.840000<=pK<=0.880000;
0.960000<=pL<=0.999990, 0.880000<=pK<=0.920000;
0.960000<=pL<=0.999990, 0.920000<=pK<=0.960000;
0.960000<=pL<=0.999990, 0.960000<=pK<=0.999990;

2
examples/pmdp/brp/brp_space.txt

@ -0,0 +1,2 @@
0.000010<=pL<=0.999990, 0.000010<=pK<=0.999990;

2
examples/pmdp/brp/models

@ -0,0 +1,2 @@
brp.pm -const N=256,MAX=5
brp.pm -const N=4096,MAX=5

56
examples/pmdp/coin2/coin2.pm

@ -0,0 +1,56 @@
//Randomised Consensus Protocol
mdp
const double p1; // in [0.2 , 0.8]
const double p2; // in [0.2 , 0.8]
const int N=2;
const int K;
const int range = 2*(K+1)*N;
const int counter_init = (K+1)*N;
const int left = N;
const int right = 2*(K+1)*N - N;
// shared coin
global counter : [0..range] init counter_init;
module process1
// program counter
pc1 : [0..3];
// 0 - flip
// 1 - write
// 2 - check
// 3 - finished
// local coin
coin1 : [0..1];
// flip coin
[] (pc1=0) -> p1 : (coin1'=0) & (pc1'=1) + 1 - p1 : (coin1'=1) & (pc1'=1);
// write tails -1 (reset coin to add regularity)
[] (pc1=1) & (coin1=0) & (counter>0) -> (counter'=counter-1) & (pc1'=2) & (coin1'=0);
// write heads +1 (reset coin to add regularity)
[] (pc1=1) & (coin1=1) & (counter<range) -> (counter'=counter+1) & (pc1'=2) & (coin1'=0);
// check
// decide tails
[] (pc1=2) & (counter<=left) -> (pc1'=3) & (coin1'=0);
// decide heads
[] (pc1=2) & (counter>=right) -> (pc1'=3) & (coin1'=1);
// flip again
[] (pc1=2) & (counter>left) & (counter<right) -> (pc1'=0);
// loop (all loop together when done)
[done] (pc1=3) -> (pc1'=3);
endmodule
module process2 = process1[pc1=pc2,coin1=coin2,p1=p2] endmodule
label "finished" = pc1=3 &pc2=3 ;
label "all_coins_equal_1" = coin1=1 &coin2=1 ;
rewards "steps"
true : 1;
endrewards

Some files were not shown because too many files changed in this diff

|||||||
100:0
Loading…
Cancel
Save