MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
core.h File Reference
#include <mim/axiom.h>
#include <mim/world.h>
#include "mim/plug/core/autogen.h"
Include dependency graph for core.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mim
 
namespace  mim::plug
 
namespace  mim::plug::core
 The core Plugin
 

Functions

%core.trait
Ref mim::plug::core::op (trait o, Ref type)
 
%core.pe
Ref mim::plug::core::op (pe o, Ref def)
 
%core.bit2
constexpr std::array< std::array< u64, 2 >, 2 > mim::plug::core::make_truth_table (bit2 id)
 
extract_unsafe
Ref mim::plug::core::extract_unsafe (Ref d, Ref i)
 
Ref mim::plug::core::extract_unsafe (Ref d, u64 i)
 
insert_unsafe
Ref mim::plug::core::insert_unsafe (Ref d, Ref i, Ref val)
 
Ref mim::plug::core::insert_unsafe (Ref d, u64 i, Ref val)
 
Convert TBound to Sigma

This is WIP.

template<bool up>
const Sigmamim::plug::core::convert (const TBound< up > *b)
 
const Sigmamim::plug::core::convert (const Bound *b)
 
is_commutative/is_associative
constexpr bool mim::is_commutative (plug::core::nat id)
 
constexpr bool mim::is_commutative (plug::core::ncmp id)
 
constexpr bool mim::is_commutative (plug::core::wrap id)
 
constexpr bool mim::is_commutative (plug::core::icmp id)
 
constexpr bool mim::is_commutative (plug::core::bit2 id)
 
constexpr bool mim::is_associative (plug::core::bit2 id)
 
constexpr bool mim::is_associative (plug::core::nat id)
 
constexpr bool mim::is_associative (plug::core::ncmp id)
 
constexpr bool mim::is_associative (plug::core::icmp id)
 
constexpr bool mim::is_associative (plug::core::wrap id)
 

Mode

enum class  mim::plug::core::Mode : nat_t {
  mim::plug::core::none = 0 ,
  mim::plug::core::nsw = 1 << 0 ,
  mim::plug::core::nuw = 1 << 1 ,
  mim::plug::core::nusw = nuw | nsw
}
 
using mim::plug::core::VMode = std::variant<Mode, nat_t, Ref>
 Give Mode as mim::plug::math::Mode, mim::nat_t or Ref.
 
Ref mim::plug::core::mode (World &w, VMode m)
 mim::plug::core::VMode -> Ref.