souffle  2.0.2-371-g6315b36
Public Types
souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op > Struct Template Reference

A MPL type for defining a property space. More...

#include <ConstraintSystem.h>

Collaboration diagram for souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >:
Collaboration graph

Public Types

using bottom_factory_type = bottom_factory
 
using meet_assign_op_type = meet_assign_op
 
using meet_op_type = meet_op
 
using value_type = T
 

Detailed Description

template<typename T, typename meet_assign_op, typename bottom_factory = typename detail::default_bottom_factory<T>, typename meet_op = typename detail::default_meet_op<T, meet_assign_op>>
struct souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >

A MPL type for defining a property space.

A property space consists of a value type T (the domain of the property space), a meet operator and a factory for computing the bottom value of the property space.

For performance reasons the meet operator is defined by a meet-assign operator mutating the first operator to become the actual result of the meet operation.

Template Parameters
Tthe value domain of the defined property space
meet_assign_opthe meet-assign operator defining the lattice over the values of T forming the foundation for the resulting property space
bottom_factorya functor producing the bottom element of the property space by default the default constructor of T will be utilized
meet_opa non destructive meet operator, by default derived from the meet-assign operator

Definition at line 95 of file ConstraintSystem.h.

Member Typedef Documentation

◆ bottom_factory_type

template<typename T , typename meet_assign_op , typename bottom_factory = typename detail::default_bottom_factory<T>, typename meet_op = typename detail::default_meet_op<T, meet_assign_op>>
using souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >::bottom_factory_type = bottom_factory

Definition at line 99 of file ConstraintSystem.h.

◆ meet_assign_op_type

template<typename T , typename meet_assign_op , typename bottom_factory = typename detail::default_bottom_factory<T>, typename meet_op = typename detail::default_meet_op<T, meet_assign_op>>
using souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >::meet_assign_op_type = meet_assign_op

Definition at line 97 of file ConstraintSystem.h.

◆ meet_op_type

template<typename T , typename meet_assign_op , typename bottom_factory = typename detail::default_bottom_factory<T>, typename meet_op = typename detail::default_meet_op<T, meet_assign_op>>
using souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >::meet_op_type = meet_op

Definition at line 98 of file ConstraintSystem.h.

◆ value_type

template<typename T , typename meet_assign_op , typename bottom_factory = typename detail::default_bottom_factory<T>, typename meet_op = typename detail::default_meet_op<T, meet_assign_op>>
using souffle::ast::analysis::property_space< T, meet_assign_op, bottom_factory, meet_op >::value_type = T

Definition at line 96 of file ConstraintSystem.h.


The documentation for this struct was generated from the following file: