//@ [!lean] skip

fn u8_overflowing_add(x: u8, y: u8) -> (u8, bool) {
    x.overflowing_add(y)
}
fn u16_overflowing_add(x: u16, y: u16) -> (u16, bool) {
    x.overflowing_add(y)
}
fn u32_overflowing_add(x: u32, y: u32) -> (u32, bool) {
    x.overflowing_add(y)
}
fn u64_overflowing_add(x: u64, y: u64) -> (u64, bool) {
    x.overflowing_add(y)
}
fn u128_overflowing_add(x: u128, y: u128) -> (u128, bool) {
    x.overflowing_add(y)
}
fn usize_overflowing_add(x: usize, y: usize) -> (usize, bool) {
    x.overflowing_add(y)
}

fn i8_overflowing_add(x: i8, y: i8) -> (i8, bool) {
    x.overflowing_add(y)
}
fn i16_overflowing_add(x: i16, y: i16) -> (i16, bool) {
    x.overflowing_add(y)
}
fn i32_overflowing_add(x: i32, y: i32) -> (i32, bool) {
    x.overflowing_add(y)
}
fn i64_overflowing_add(x: i64, y: i64) -> (i64, bool) {
    x.overflowing_add(y)
}
fn i128_overflowing_add(x: i128, y: i128) -> (i128, bool) {
    x.overflowing_add(y)
}
fn isize_overflowing_add(x: isize, y: isize) -> (isize, bool) {
    x.overflowing_add(y)
}

fn u8_overflowing_sub(x: u8, y: u8) -> (u8, bool) {
    x.overflowing_sub(y)
}
fn u16_overflowing_sub(x: u16, y: u16) -> (u16, bool) {
    x.overflowing_sub(y)
}
fn u32_overflowing_sub(x: u32, y: u32) -> (u32, bool) {
    x.overflowing_sub(y)
}
fn u64_overflowing_sub(x: u64, y: u64) -> (u64, bool) {
    x.overflowing_sub(y)
}
fn u128_overflowing_sub(x: u128, y: u128) -> (u128, bool) {
    x.overflowing_sub(y)
}
fn usize_overflowing_sub(x: usize, y: usize) -> (usize, bool) {
    x.overflowing_sub(y)
}

fn i8_overflowing_sub(x: i8, y: i8) -> (i8, bool) {
    x.overflowing_sub(y)
}
fn i16_overflowing_sub(x: i16, y: i16) -> (i16, bool) {
    x.overflowing_sub(y)
}
fn i32_overflowing_sub(x: i32, y: i32) -> (i32, bool) {
    x.overflowing_sub(y)
}
fn i64_overflowing_sub(x: i64, y: i64) -> (i64, bool) {
    x.overflowing_sub(y)
}
fn i128_overflowing_sub(x: i128, y: i128) -> (i128, bool) {
    x.overflowing_sub(y)
}
fn isize_overflowing_sub(x: isize, y: isize) -> (isize, bool) {
    x.overflowing_sub(y)
}

fn u8_overflowing_mul(x: u8, y: u8) -> (u8, bool) {
    x.overflowing_mul(y)
}
fn u16_overflowing_mul(x: u16, y: u16) -> (u16, bool) {
    x.overflowing_mul(y)
}
fn u32_overflowing_mul(x: u32, y: u32) -> (u32, bool) {
    x.overflowing_mul(y)
}
fn u64_overflowing_mul(x: u64, y: u64) -> (u64, bool) {
    x.overflowing_mul(y)
}
fn u128_overflowing_mul(x: u128, y: u128) -> (u128, bool) {
    x.overflowing_mul(y)
}
fn usize_overflowing_mul(x: usize, y: usize) -> (usize, bool) {
    x.overflowing_mul(y)
}

fn i8_overflowing_mul(x: i8, y: i8) -> (i8, bool) {
    x.overflowing_mul(y)
}
fn i16_overflowing_mul(x: i16, y: i16) -> (i16, bool) {
    x.overflowing_mul(y)
}
fn i32_overflowing_mul(x: i32, y: i32) -> (i32, bool) {
    x.overflowing_mul(y)
}
fn i64_overflowing_mul(x: i64, y: i64) -> (i64, bool) {
    x.overflowing_mul(y)
}
fn i128_overflowing_mul(x: i128, y: i128) -> (i128, bool) {
    x.overflowing_mul(y)
}
fn isize_overflowing_mul(x: isize, y: isize) -> (isize, bool) {
    x.overflowing_mul(y)
}

fn u8_overflowing_div(x: u8, y: u8) -> (u8, bool) {
    x.overflowing_div(y)
}
fn u16_overflowing_div(x: u16, y: u16) -> (u16, bool) {
    x.overflowing_div(y)
}
fn u32_overflowing_div(x: u32, y: u32) -> (u32, bool) {
    x.overflowing_div(y)
}
fn u64_overflowing_div(x: u64, y: u64) -> (u64, bool) {
    x.overflowing_div(y)
}
fn u128_overflowing_div(x: u128, y: u128) -> (u128, bool) {
    x.overflowing_div(y)
}
fn usize_overflowing_div(x: usize, y: usize) -> (usize, bool) {
    x.overflowing_div(y)
}

fn i8_overflowing_div(x: i8, y: i8) -> (i8, bool) {
    x.overflowing_div(y)
}
fn i16_overflowing_div(x: i16, y: i16) -> (i16, bool) {
    x.overflowing_div(y)
}
fn i32_overflowing_div(x: i32, y: i32) -> (i32, bool) {
    x.overflowing_div(y)
}
fn i64_overflowing_div(x: i64, y: i64) -> (i64, bool) {
    x.overflowing_div(y)
}
fn i128_overflowing_div(x: i128, y: i128) -> (i128, bool) {
    x.overflowing_div(y)
}
fn isize_overflowing_div(x: isize, y: isize) -> (isize, bool) {
    x.overflowing_div(y)
}
