val mytac : _: Prims.unit -> FStar.Tactics.Effect.Tac Prims.unit
let mytac () =
    norm [delta_only ["Bane.for_you12"]];
    seq (fun () -> repeatseq split)
        (fun () -> or_else (fun () -> let _ = repeat split in ()) trivial)
(*
   Copyright 2008-2018 Microsoft Research

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*)
module Bane
open FStar.Tactics.V2
(* To understand the naming convention on this file, please refer to
 * https://www.youtube.com/watch?v=w9wi0cPrU4U *)
[@@plugin]
val big_phi : int -> Tac unit
let rec big_phi (n : int) =
    if n = 0
    then exact (`True)
    else begin
        apply (`l_and);
        big_phi (n - 1);
        big_phi (n - 1)
    end

let for_you12 : Type0 = synth_by_tactic (fun () -> big_phi 12)

let rec repeat_or_fail (t : unit -> Tac unit) : Tac unit =
     match trytac t with
     | None -> fail "Cannot apply t any more"
     | Some x -> repeat_or_fail t
/
prims.fst.checked FStar.Tactics.V2.fst.checked FStar.Pervasives.fsti.checked
Bane.fst
_: Prims.unit -> FStar.Tactics.Effect.Tac Prims.unit
Prims.unit FStar.Tactics.V2.Derived.seq FStar.Tactics.V2.Derived.repeatseq FStar.Tactics.V2.Logic.split FStar.Tactics.V2.Derived.or_else Prims.list FStar.Tactics.V2.Derived.repeat FStar.Tactics.V2.Derived.trivial FStar.Stubs.Tactics.V2.Builtins.norm Prims.Cons FStar.Pervasives.norm_step FStar.Pervasives.delta_only Prims.string Prims.Nil
let mytac () =
  
norm [delta_only ["Bane.for_you12"]];
seq (fun () -> repeatseq split)
  (fun () ->
      or_else (fun () ->
            let _ = repeat split in
            ())
        trivial)