MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / implies

Method implies

ir/state.cpp:941–957  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

939}
940
941expr State::FnCallInput::implies(const FnCallInput &rhs) const {
942 if (noret != rhs.noret || willret != rhs.willret ||
943 (rhs.memaccess.canReadSomething().isTrue() &&
944 (fncall_ranges != rhs.fncall_ranges || is_neq(m <=> rhs.m))))
945 return false;
946
947 AndExpr eq;
948 eq.add(memaccess.refinedBy(rhs.memaccess));
949 for (unsigned i = 0, e = args_nonptr.size(); i != e; ++i) {
950 eq.add(args_nonptr[i].implies(rhs.args_nonptr[i]));
951 }
952
953 for (unsigned i = 0, e = args_ptr.size(); i != e; ++i) {
954 eq.add(args_ptr[i].implies(rhs.args_ptr[i]));
955 }
956 return eq();
957}
958
959expr State::FnCallInput::refinedBy(
960 State &s, const string &callee, unsigned inaccessible_bid,

Callers 15

check_refinementFunction · 0.45
refinedByMethod · 0.45
addFnCallMethod · 0.45
isImpliedMethod · 0.45
refinesMethod · 0.45
getTypeConstraintsMethod · 0.45
operator==Method · 0.45
refinedMethod · 0.45
hasStoredMethod · 0.45
mkNonlocalValAxiomsMethod · 0.45
mkAxiomsMethod · 0.45
setStateMethod · 0.45

Calls 10

is_neqFunction · 0.85
getAsAggregateTypeMethod · 0.80
numElementsConstMethod · 0.80
isPaddingMethod · 0.80
isTrueMethod · 0.45
canReadSomethingMethod · 0.45
addMethod · 0.45
refinedByMethod · 0.45
sizeMethod · 0.45
extractMethod · 0.45

Tested by

no test coverage detected