class_docstr: ai - prover of logic rules
  
  given a set of initial rules, Prover tries to prove all possible rules
  which follow from given premises.
  
  As a result proved_rules are always either in one of two forms: alpha or
  beta:
  
  Alpha rules
  -----------
  
  This are rules of the form::
  
    a -> b & c & d & ...
  
  
  Beta rules
  ----------
  
  This are rules of the form::
  
    &(a,b,...) -> c & d & ...
  
  
  i.e. beta rules are join conditions that say that something follows when
  *several* facts are true at the same time.
code: def rules_alpha(self):
      return self.split_alpha_beta()[0]
  
imports: from collections import defaultdict
  from typing import Iterator
  from .logic import Logic, And, Or, Not
label_desc: Use image node_id 3 for calling the Prover obj's underlying member method code with example usage: obj.rules_alpha() and returns: self