@ -212,6 +212,54 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				            ExportJsonType  opDecl ( f . isTrueFormula ( )  ?  true  :  false ) ;  
				 
				 
				            ExportJsonType  opDecl ( f . isTrueFormula ( )  ?  true  :  false ) ;  
			
		 
		
	
		
			
				 
				 
				            return  opDecl ;  
				 
				 
				            return  opDecl ;  
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        boost : : any  FormulaToJaniJson : : visit ( storm : : logic : : BoundedGloballyFormula  const &  f ,  boost : : any  const &  data )  const  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            STORM_LOG_THROW ( ! f . hasMultiDimensionalSubformulas ( ) ,  storm : : exceptions : : NotSupportedException ,  " Jani export of multi-dimensional bounded globally formulas is not supported. " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            ExportJsonType  opDecl ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            opDecl [ " op " ]  =  " G " ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            opDecl [ " exp " ]  =  anyToJson ( f . getSubformula ( ) . accept ( * this ,  data ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            bool  hasStepBounds ( false ) ,  hasTimeBounds ( false ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            std : : vector < ExportJsonType >  rewardBounds ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            for  ( uint64_t  i  =  0 ;  i  <  f . getDimension ( ) ;  + + i )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                boost : : optional < storm : : expressions : : Expression >  lower ,  upper ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                boost : : optional < bool >  lowerExclusive ,  upperExclusive ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                if  ( f . hasLowerBound ( i ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    lower  =  f . getLowerBound ( i ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    lowerExclusive  =  f . isLowerBoundStrict ( i ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                if  ( f . hasUpperBound ( i ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    upper  =  f . getUpperBound ( i ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    upperExclusive  =  f . isUpperBoundStrict ( i ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                ExportJsonType  propertyInterval  =  constructPropertyInterval ( lower ,  lowerExclusive ,  upper ,  upperExclusive ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                auto  tbr  =  f . getTimeBoundReference ( i ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                if  ( tbr . isStepBound ( )  | |  ( model . isDiscreteTimeModel ( )  & &  tbr . isTimeBound ( ) ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    STORM_LOG_THROW ( ! hasStepBounds ,  storm : : exceptions : : NotSupportedException ,  " Jani export of until formulas with multiple step bounds is not supported. " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    hasStepBounds  =  true ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    opDecl [ " step-bounds " ]  =  propertyInterval ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                }  else  if ( tbr . isRewardBound ( ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    ExportJsonType  rewbound ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    rewbound [ " exp " ]  =  buildExpression ( model . getRewardModelExpression ( tbr . getRewardName ( ) ) ,  model . getConstants ( ) ,  model . getGlobalVariables ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    if  ( tbr . hasRewardAccumulation ( ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        rewbound [ " accumulate " ]  =  constructRewardAccumulation ( tbr . getRewardAccumulation ( ) ,  tbr . getRewardName ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    }  else  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                        rewbound [ " accumulate " ]  =  constructStandardRewardAccumulation ( tbr . getRewardName ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    rewbound [ " bounds " ]  =  propertyInterval ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    rewardBounds . push_back ( std : : move ( rewbound ) ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                }  else  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    STORM_LOG_THROW ( ! hasTimeBounds ,  storm : : exceptions : : NotSupportedException ,  " Jani export of globally formulas with multiple time bounds is not supported. " ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    hasTimeBounds  =  true ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                    opDecl [ " time-bounds " ]  =  propertyInterval ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            if  ( ! rewardBounds . empty ( ) )  {  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				                opDecl [ " reward-bounds " ]  =  ExportJsonType ( rewardBounds ) ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            }  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				            return  opDecl ;  
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				        boost : : any  FormulaToJaniJson : : visit ( storm : : logic : : BoundedUntilFormula  const &  f ,  boost : : any  const &  data )  const  {  
				 
				 
				        boost : : any  FormulaToJaniJson : : visit ( storm : : logic : : BoundedUntilFormula  const &  f ,  boost : : any  const &  data )  const  {  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( ! f . hasMultiDimensionalSubformulas ( ) ,  storm : : exceptions : : NotSupportedException ,  " Jani export of multi-dimensional bounded until formulas is not supported. " ) ;  
				 
				 
				            STORM_LOG_THROW ( ! f . hasMultiDimensionalSubformulas ( ) ,  storm : : exceptions : : NotSupportedException ,  " Jani export of multi-dimensional bounded until formulas is not supported. " ) ;  
			
		 
		
	
		
			
				 
				 
				            ExportJsonType  opDecl ;  
				 
				 
				            ExportJsonType  opDecl ;