public AuditLogService(ProofContext proofContext)
 {
     _proofContext = proofContext;
 }
	public ProofContext proof() {
		ProofContext _localctx = new ProofContext(Context, State);
		EnterRule(_localctx, 2, RULE_proof);
		int _la;
		try {
			EnterOuterAlt(_localctx, 1);
			{
			State = 23;
			ErrorHandler.Sync(this);
			_la = TokenStream.La(1);
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__7) | (1L << ID))) != 0)) {
				{
				{
				State = 18; expression();
				State = 19; Match(T__0);
				}
				}
				State = 25;
				ErrorHandler.Sync(this);
				_la = TokenStream.La(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			ErrorHandler.ReportError(this, re);
			ErrorHandler.Recover(this, re);
		}
		finally {
			ExitRule();
		}
		return _localctx;
	}